home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 June / EnigmA AMIGA RUN 19 (1997)(G.R. Edizioni)(IT)[!][issue 1997-06][EAR-CD III].iso / imagestudio / imagestudio68000 / docs / imagestudio.txt < prev    next >
Text File  |  1995-09-29  |  224KB  |  7,834 lines

  1. ImageStudio, shareware image processing and conversion package for the
  2. Amiga.
  3.  
  4.    Copyright (C) 1994,1995 Andy Dean, Graham Dean.
  5.  
  6.    Welcome to ImageStudio, shareware image processing and conversion
  7. package for the Amiga.
  8.  
  9.    This document applies to version 2.3.x, written on 2nd October 1995,
  10. Copyright (C) 1994,1995 Andy Dean, Graham Dean.
  11.  
  12. Introduction
  13. ************
  14.  
  15.    This chapter gives a brief introduction into the features offered by
  16. the program.
  17.  
  18. Copyright and Disclaimer
  19. ========================
  20.  
  21.    No guarantee of any kind is given that the programs described in
  22. this document are 100% reliable. You are using this material at your
  23. own risk. The authors *can not* be made responsible for any damage
  24. which is caused by using these programs.
  25.  
  26.    The unregistered package is freeware, but still copyright by Andy
  27. Dean and Graham Dean. This means that you can copy it freely as long as
  28. you don't ask for a more than nominal copying fee.
  29.  
  30.    The registered version of the program and its associated keyfile
  31. *may not* be freely distributed.
  32.  
  33.    The GIF loader/saver module (gif.isio) remains freely-distributable
  34. for both the registered and unregistered versions of the program. No
  35. charge is made for this module.
  36.  
  37.    Permission is granted to include the unregistered package in
  38. Public-Domain collections, especially in the excellent Fred Fish Amiga
  39. Disk Library (including CD ROM versions of it). The distribution file
  40. may be uploaded to Bulletin Board Systems or FTP servers. If you want
  41. to distribute this package you must not remove or alter any of the
  42. supplied files, although the files may be re-compressed using any Amiga
  43. archiver program.
  44.  
  45.    This program (or parts of it) may not be included or used in
  46. commercial programs unless by written permission from the authors.
  47.  
  48.    Installer and Installer project icon (c) Copyright 1991-93
  49. Commodore-Amiga, Inc. All Rights Reserved. Reproduced and distributed
  50. under license from Commodore.
  51.  
  52.    INSTALLER SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE; NO
  53. WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK. NO LIABILITY OR
  54. RESPONSIBILITY IS ASSUMED.
  55.  
  56.    amigaguide.library (c) Copyright 1991-93 Commodore-Amiga, Inc. All
  57. Rights Reserved. Reproduced and distributed under license from
  58. Commodore.
  59.  
  60.    AMIGAGUIDE SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE; NO
  61. WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK. NO LIABILITY OR
  62. RESPONSIBILITY IS ASSUMED.
  63.  
  64.    Jonathan Forbes, the author of LX, has granted permission to include
  65. the unmodified Version 1.03 LX executable by itself (i.e. without
  66. documentation) with any PUBLIC DOMAIN or SHAREWARE package, provided
  67. that a brief credit note is included in the program's documentation
  68. (see Credits).
  69.  
  70. Machine requirements
  71. ====================
  72.  
  73.    ImageStudio requires the following system to run:
  74.  
  75.    * Workbench 2.04 or above.
  76.  
  77.    * Around 1 megabyte of free memory.
  78.  
  79.    * Several megabytes of free hard disk space.
  80.  
  81.    If ImageStudio is run on an AGA machine (A1200 or A4000), it will
  82. use the new display modes and palette routines to improve the quality
  83. of the internal viewer images.
  84.  
  85. Brief description
  86. =================
  87.  
  88.    ImageStudio is written for the casual graphics user who wishes to
  89. convert or manipulate various graphics formats on a modest Amiga
  90. system. There are several commercial offerings available, however the
  91. casual user is paying a lot of money for many facilities and options
  92. they would probably never use.
  93.  
  94.    Bitmap graphics, by their nature, usually require large amounts of
  95. RAM. One of the main objectives of ImageStudio was to reduce this
  96. burden by utilising virtual memory - most users have more spare hard
  97. disk space than spare RAM.
  98.  
  99.    ImageStudio works with several buffers at any one time (dependant on
  100. how many levels of undo are specified), each of these buffers can hold
  101. either colour-mapped or 24-bit images. For a detailed description of
  102. colour-mapped and 24-bit images, See Image types.
  103.  
  104.    ImageStudio comes with a fully featured ARexx port, which allows the
  105. writing of macro scripts to automate repetative processes and also
  106. allows communication with other ARexx aware programs. Again, ARexx has
  107. the reputation of being "something pretty difficult", so we've
  108. simplified the use of ARexx in ImageStudio by allowing the user to
  109. create, edit and run scripts entirely within ImageStudio - ImageStudio
  110. even provides a blank template as a starting point for each new script.
  111.  
  112. List of features
  113. ================
  114.  
  115.    General:
  116.    * Full 24-bit image buffers, with optimizations for colour-mapped
  117.      (palette based) images.
  118.  
  119.    * Up to 100 levels of undo / redo.
  120.  
  121.    * User configurable virtual memory.
  122.  
  123.    * Fully featured, easy to use, ARexx interface.
  124.  
  125.    * Fully font sensitive, style guide complient, user interface.
  126.  
  127.    * Fully CyberGraphX compatibility for both the viewers and the
  128.      preview window.
  129.  
  130.    * Modular loaders and savers.
  131.  
  132.    * User saveable preferences.
  133.  
  134.    * Operations applicable to the whole image or a selected region.
  135.  
  136.    * Up to 256 greyshade preview window (with optional dither).
  137.  
  138.    * Zoom on preview window.
  139.  
  140.    * Internal / external viewers.
  141.  
  142.    * Loading / saving / manipulating of AGA image formats (e.g. 256
  143.      colours, HAM8) on non-AGA machines.
  144.  
  145.    * Max image size of 32000 x 32000 (crops images to 512 x 512 in the
  146.      unregistered version).
  147.  
  148.    * Copy / paste to / from the system clipboard.
  149.  
  150.    * Runs on all Workbench 2.04+ Amiga's - utilises AGA chipset if
  151.      available.
  152.  
  153.    * Online AmigaGuide help, as well as ASCII, TeX `.dvi' and
  154.      PostScript documentation.
  155.  
  156.    * Multi-level help error requesters.
  157.  
  158.    * Public screen.
  159.  
  160.    * Requires no third party libraries or utilities.
  161.  
  162.    Import:
  163.    * IFF-ILBM formats (Standard palette based, HAM6, HAM8, extra half
  164.      bright, ILBM24)
  165.  
  166.    * BMP
  167.  
  168.    * Datatypes (with Workbench3.0 and above)
  169.  
  170.    * GIF (conforming to GIF87a or GIF89a)
  171.  
  172.    * IFF-DEEP
  173.  
  174.    * JPEG (conforming to JFIF standard)
  175.  
  176.    * PCX
  177.  
  178.    * PNM (PBM, PGM, PPM, ASCII and binary)
  179.  
  180.    * QRT (DKB, POV)
  181.  
  182.    * SGI
  183.  
  184.    * Targa
  185.  
  186.    * TIFF
  187.  
  188.    * VMEM (internal virtual memory format)
  189.  
  190.    Export:
  191.    * IFF-ILBM formats (Standard palette based, HAM6, HAM8, extra half
  192.      bright, ILBM24)
  193.  
  194.    * BMP
  195.  
  196.    * EPS
  197.  
  198.    * GIF (conforming to GIF87a or GIF89a)
  199.  
  200.    * IFF-DEEP
  201.  
  202.    * JPEG (conforming to JFIF standard)
  203.  
  204.    * PCX
  205.  
  206.    * PNM (PBM, PGM, PPM, ASCII and binary)
  207.  
  208.    * QRT (DKB, POV)
  209.  
  210.    * SGI
  211.  
  212.    * Targa
  213.  
  214.    * TIFF
  215.  
  216.    * VMEM (internal virtual memory format)
  217.  
  218.    Colour Balance:
  219.    * All operations are available to the R,G,B components separately.
  220.  
  221.    * Brightness ( upto ±100%)
  222.  
  223.    * Contrast (non to full)
  224.  
  225.    * Gamma ( + and - )
  226.  
  227.    Convolution:
  228.    * Many supplied convolution filters.
  229.  
  230.    * User definable convolutions, load and save to disk.
  231.  
  232.    Effects:
  233.    * Built in effects: Dynamic range expansion, FlipX, FlipY, RollX,
  234.      RollY, Negative, Greyscale, Highlight, Shadow, Random, Pixelize,
  235.      Remove isolated pixels.
  236.  
  237.    Scale:
  238.    * Crop to selected region.
  239.  
  240.    * Increase / decrease scale by percentage or absolute image size.
  241.  
  242.    * Simple scale or colour averaged.
  243.  
  244.    Colour reduction:
  245.    * Increase colour mapped images to 24-bit.
  246.  
  247.    * Decrease number of colours in 24-bit or colour mapped images via
  248.      Heckbert median cut algorithm.
  249.  
  250.    * Dithers available for colour reduction: None, Floyd-Steinberg,
  251.      Burkes, Stucki, Sierra, Jarvis, Stevenson-Arce.
  252.  
  253.    Palette:
  254.    * Edit palette colours and ranges.
  255.  
  256.    * Save current palette.
  257.  
  258.    * Force palette onto current image, dithering if necessary (all dith
  259.      ers available).
  260.  
  261. Shareware version
  262. =================
  263.  
  264.    To encourage users to register, the freely distributable version of
  265. ImageStudio will crop images to 512x512 pixels. All other operations
  266. are available.
  267.  
  268.    For details on how to register, See How to register.
  269.  
  270. Starting ImageStudio
  271. ====================
  272.  
  273.    ImageStudio can be started from either the Workbench or CLI. From
  274. the Workbench it is simply a case of double-clicking on the icon.
  275. ImageStudio supports shift-clicking on a file to start the program with
  276. (see the Workbench manual for more information).
  277.  
  278.    To start ImageStudio from the CLI, simply type:
  279.  
  280.      run ImageStudio [filename]
  281.  
  282.    where `filename' is an optional file to load in at startup. The full
  283. range of tooltypes is supported, and can be appended to the CLI
  284. command. For example:
  285.  
  286.      run ImageStudio "SCREENNAME=Image2" "PREVIEWDITHER=YES" [filename]
  287.  
  288.    would start the program on a public screen named `Image2' with pre
  289. view dithering on. See Tooltypes, for a full list of available
  290. tooltypes.
  291.  
  292. Upgrading from version 1.x.x
  293. ============================
  294.  
  295.    All versions of ImageStudio from version 2.0.0 require a *keyfile*
  296. to work fully.
  297.  
  298.    Users who have registered the ImageStudio package after v2.0.0 will
  299. be provided with a unique keyfile that can be used immediately.
  300.  
  301.    Users who have registered v1.x.x of the ImageStudio package will
  302. have to create their own keyfile using the `Create keyfile' option
  303. under the `Project' menu. See Create_keyfile, for more details.
  304.  
  305.    The idea of the keyfile is that once a keyfile has been created, it
  306. can be placed somewhere where all the programs in the ImageStudio
  307. package can access it. This is typically either the ImageStudio drawer
  308. or the `S:' directory. The user should never need to create another
  309. keyfile, it should work with all future versions of the software; for
  310. this reason, it is suggested that the keyfile is backed up and kept
  311. somewhere safe, as we will be unwilling to give out replacements should
  312. you loose it.
  313.  
  314.    It should also be noted that each keyfile is unique to each user,
  315. and your keyfile should not be given to others. If the number of
  316. registrations should drop due to people abusing the keyfile scheme and
  317. distributing pirate versions of the program, we shall be forced to do
  318. one or more of the following:
  319.  
  320.   1. Stop providing free upgrades. All programs will be individually
  321.      stamped and all upgrades must be paid for.
  322.  
  323.   2. Remove online help and provide printed manuals instead. This will
  324.      naturally raise the price substantially.
  325.  
  326.   3. Sell the software to a software publisher for commercial
  327.      distribution. This is likely to lead to a large price increase.
  328.  
  329.   4. Stop developing ImageStudio and related products.
  330.  
  331.    We see no reason why we should have to resort to any of these
  332. measures, but if you're using a pirated copy of ImageStudio now and you
  333. refuse to register, you *WILL* force this upon us.
  334.  
  335.    If you are using a pirate copy of ImageStudio, so will hundreds of
  336. others. A hundred orders to us is the difference between us writing the
  337. next version of the program, and us abandoning it. It really is your
  338. choice.
  339.  
  340. Configuring ImageStudio
  341. =======================
  342.  
  343.    In order to benefit from ImageStudio's virtual memory, it is
  344. recommended that the default location used for the storage of the
  345. temporary files is changed. The default location for the storage of
  346. these files is `T:' which is usually in RAM - we want to move this out
  347. onto harddisk.
  348.  
  349.    To do this, select `Prefs' from the `Project' menu and open up the
  350. prefs requester. Change the TEMPDIR preference to the desired location
  351. for the temporary files. See Prefs, for more information on changing
  352. preference variables.
  353.  
  354.    It is suggested that a drawer be made on a harddisk partition with
  355. lots of space to store these files. For example, make a drawer in your
  356. `Work:' partition called `tmp', and change the TEMPDIR preference to
  357. read `Work:tmp'.
  358.  
  359. Tutorial
  360. ********
  361.  
  362.    This chapter introduces ImageStudio by way of a few tutorials
  363. demonstrating commonly performed operations.
  364.  
  365. Changing the image format
  366. =========================
  367.  
  368.    The simplest use of ImageStudio is just as a file format converter;
  369. See File formats, for details about the supported file formats.
  370.  
  371.    In this example we will change the image format of the
  372. `FW14B_250x250.gif' from GIF to IFF-ILBM.
  373.  
  374.   1. Load the file `FW14B_250x250.gif' from the `Pics' drawer.  To do
  375.      this, select `Open' from the `Project' menu. When the file
  376.      requester opens, select the file and it will load into ImageStudio.
  377.      The greyscale preview will show the image.
  378.  
  379.   2. The Infobar at the bottom of the screen shows the current image
  380.      size and number of colours, as well as a fuelgauge showing
  381.      progress when applicable. The current co-ordinates of the pointer
  382.      are also shown when the preview window is active.
  383.  
  384.   3. Open the save requester. To do this, select `Save' from the
  385.      `Project' menu. A requester will open, containing (amongst other
  386.      things) possible save formats.
  387.  
  388.   4. Select the file format to save. To do this, click on `IFF-ILBM' in
  389.      the listview.
  390.  
  391.   5. Change the filename to avoid overwriting the original file. To do
  392.      this, type the new filename - `FW14B_250x250.ilbm' into the
  393.      `Filename' string gadget.
  394.  
  395.   6. Save out the file by clicking on the `Save' gadget.
  396.  
  397.    The file will now be saved out as a 256 colour IFF-ILBM onto the
  398. disk.
  399.  
  400.    Note:
  401.  
  402.    * All time consuming operations show their progress in the Infobar's
  403.      fuelgauge and can be aborted by clicking on the `Abort' gadget.
  404.  
  405. Changing the number of colours
  406. ==============================
  407.  
  408.    Often it is necessary to reduce the number of colours in an image,
  409. either to reduce the file size or produce images compatible with
  410. non-AGA software.
  411.  
  412.    In this example we will reduce the number of colours in the
  413. `FW14B_250x250.gif' image from 256 colours to 16 colours.
  414.  
  415.   1. Load in the `FW14B_250x250.gif' from the `Pics' drawer, if it not
  416.      already loaded.
  417.  
  418.   2. Open the colours requester by selecting `Colours...' from the
  419.      `Process' menu.
  420.  
  421.   3. The gadgets in the requester will show that the image is a 256 col
  422.      our colour-mapped image. Change the number of colours to 16 by
  423.      clicking on the cycle gadget or sliding the `No. of colours'
  424.      slider.
  425.  
  426.   4. Leave the `Colour choice' and `Dithering' gadgets for now.
  427.  
  428.   5. Click on `OK' to perform the operation.
  429.  
  430.   6. When the operation is complete, view the image with the internal
  431.      viewer by selecting `View' from the `View' menu. A 16 colour Lores
  432.      image will be displayed.
  433.  
  434.   7. Remove the internal viewer by clicking the right mouse button.
  435.  
  436.    The colour reduced image should contain all the main colours used in
  437. the original image (blue, yellow, red and grey), but should contain
  438. less shades of the colours. To give the impression of more colours,
  439. dithering can be used to mix pixels of the chosen colours. To perform
  440. the last operation with dithering:
  441.  
  442.   1. Undo the colour reduction operation to return to the original 256
  443.      colour image. To do this, select `Undo' from the `Edit' menu.
  444.  
  445.   2. Bring up the colours requester as before and select 16 colours.
  446.      Also change the `Dithering' gadget from `None' to
  447.      `Floyd-Steinberg'.
  448.  
  449.   3. Click on `OK' to perform the operation.
  450.  
  451.   4. View as before.
  452.  
  453.    The image will now perform more gradual changes to colour changes.
  454.  
  455. Changing the colour balance
  456. ===========================
  457.  
  458.    When receiving images from external sources (scanners, frame grab
  459. bers) it is ofter necessary to change to "colour balance" of the image.
  460. Frame grabbers, for example, may have too much `red' in the image.
  461.  
  462.    In this example we shall see the effects on the
  463. `ColourFace_200x250RED.ham6' image of altering the colour balance.
  464.  
  465.   1. Load in the `ColourFace_200x250RED.ham6' image from the `Pics'
  466.      drawer. As the file is in HAM6 format, it is turned into 24-bit
  467.      internally.
  468.  
  469.   2. View the image with the internal viewer. As the Amiga doesn't have
  470.      true 24-bit screenmodes, the internal viewer will approximate the
  471.      24-bit image with a HAM preview screen (HAM6 on ECS machines, HAM8
  472.      on AGA machines). It should be obvious from the viewer that the
  473.      image is too red.
  474.  
  475.   3. Open the balance floating palette if it is not already open. Do
  476.      this by selecting `Show balance' from the `Tools' menu.
  477.  
  478.   4. To remove some of the red component, make sure that we are only
  479.      dealing with the red component. To do this, make sure that only the
  480.      `Red' checkbox at the bottom of the floating palette is checked.
  481.  
  482.   5. Reduce the brightness slider, by say 20%. The graph on the right of
  483.      the floating palette will reflect the change (see Show_balance for
  484.      more details on the graph).
  485.  
  486.   6. View the image again, this time the image should have lost much of
  487.      its unnatural red tint.
  488.  
  489.    Brightness and contrast work in very much the same way as a TV set,
  490. but gamma may need some explanation.
  491.  
  492.    When printing an image out, it is usual for light colours to be
  493. resolved well and dark colours to be reduced to a dark mush. It is
  494. therefore preferable to have some way boost the brightness of the
  495. mid-dark colours whilst still leaving the very light colours light and
  496. the very dark colours dark. Gamma is the operator to perform this
  497. change. By applying a small amount of positive gamma, a much better
  498. balanced image can be produced for printing out.
  499.  
  500.    See Show_balance, for more information on the balance floating
  501. palette.
  502.  
  503. Applying an effect
  504. ==================
  505.  
  506.    ImageStudio has many built in effects for performing commonly used
  507. operations.
  508.  
  509.    This example will remove some noise from a region of
  510. `HappyFace_240x250.bmp', a simulated scanned image.
  511.  
  512.   1. Load in the `HappyFace_240x250.bmp' image from the `Pics' drawer.
  513.  
  514.   2. The image represents what may happen if you hand scan an image into
  515.      the computer - lots of "noise".
  516.  
  517.   3. Open the effects floating palette if it is not already open. Do
  518.      this by selecting `Show effects' from the `Tools' menu.
  519.  
  520.   4. Select `Remove isolated pixels' in the listview of the floating
  521.      palette. If you clicked on the `Apply' button now, the effect
  522.      would be applied to the whole image. To compare the image before
  523.      and after the effect, we'll only apply the effect to the left hand
  524.      side of the image.
  525.  
  526.   5. Open the `Region co-ords' requester by selecting `Region
  527.      co-ords...' from the `Edit' menu. To select the left hand side of
  528.      the image, set the following values in the gadgets: Min x = 0, Min
  529.      y = 0, Width = 120, Height = 250. Make sure that the radio button
  530.      on the left of the requester shows that the Width / Height are
  531.      being used, not the Max values; click on `Ok'.
  532.  
  533.   6. A region of "crawling ants" will show the selected region.
  534.  
  535.   7. Click on `Apply' of the effects floating palette. The `Remove
  536.      isolated pixels' effect will be applied to the selected region.
  537.  
  538.   8. The left of the image will have had a lot of the noise
  539.      automatically removed. Clear the selected region by clicking in
  540.      the preview window.
  541.  
  542.    Note:
  543.    * Not all effects can be applied to regions and whole images.  See
  544.      Effects, for a comprehensive description of all the available
  545.      effects.
  546.  
  547.    See Show_effects, for more information on the ef fects floating
  548. palette.
  549.  
  550. Applying a convolution
  551. ======================
  552.  
  553.    Convolution is a powerful image processing tool, ImageStudio allows
  554. the user to define their own convolution filters.
  555.  
  556.    This example will apply a `Texture' filter to the
  557. `CheetahFace_250x200.ilbm' image.
  558.  
  559.   1. Load in the `CheetahFace_250x200.ilbm' image from the `Pics'
  560.      drawer.
  561.  
  562.   2. The `CheetahFace_250x200.ilbm' image is a 32 colour col our-mapped
  563.      image and convolution only works in 24-bit (see Show_convolves for
  564.      information on how convolves actually work). We therefore need to
  565.      turn the image into a 24-bit.
  566.  
  567.   3. Open the colours requester and click on the `16 million colours'
  568.      radio button on the left. Click on `OK'. The image in converted
  569.      into 24-bit.
  570.  
  571.   4. Open the convolves floating palette if it is not already open. Do
  572.      this by selecting `Show convolves' from the `Tools' menu.
  573.  
  574.   5. There should be many convolution filters in the list, click on
  575.      `Texture'.
  576.  
  577.   6. Apply the convolution filter to the image by clicking on `Apply' at
  578.      the bottom of the floating palette.
  579.  
  580.   7. After the filter has been applied, you could view the result with
  581.      the internal viewer in 24-bit, but for a clearer image we'll
  582.      convert it back to 32 colours.
  583.  
  584.   8. Open the colours requester, select `No. colours' = 32 and `Dither'
  585.      = `None'. Click on `OK'.
  586.  
  587.   9. Now view the 32 colour image with the internal viewer. The image
  588.      now has a rough paper(?) texture applied to it.
  589.  
  590.    Note:
  591.  
  592.    * There are many commonly used convolution filters available, it is
  593.      up to the user to build a collection suitable filters for their own
  594.      use.
  595.  
  596.    See Show_convolves, for more information on the convolves floating
  597. palette.
  598.  
  599. Scaling the image
  600. =================
  601.  
  602.    In this example we will scale the `CheetahFace_250x200.ilbm' image
  603. from 250 x 200 pixels down to 80 x 40 (icon size).
  604.  
  605.   1. Load in the `CheetahFace_250x200.ilbm' image from the `Pics'
  606.      drawer.
  607.  
  608.   2. Open the scale requester by selecting `Scale...' in the `Process'
  609.      menu.
  610.  
  611.   3. Set the `Width' = 80 and `Height' = 40. Click on `OK'.
  612.  
  613.   4. The image is re-scaled to that of an icon.
  614.  
  615.    The finish the creation of the icon, we can load it into Commodore's
  616. `IconEdit' program. Both ImageStudio and IconEdit support the
  617. clipboard, so we can copy the image into the clipboard from ImageStudio
  618. and paste it into IconEdit.
  619.  
  620.   1. Copy the image to the clipboard by selected `Copy' in the `Edit'
  621.      menu of ImageStudio.
  622.  
  623.   2. Run IconEdit from the `Tools' drawer of your system partition.
  624.  
  625.   3. Select `Paste' from IconEdit's `Edit' menu. The image will be
  626.      copied into IconEdit for final editing.
  627.  
  628. Menu options
  629. ************
  630.  
  631.    This chapter describes ImageStudio's menu options in detail.
  632.  
  633.    Selecting a main menu from the list below will give a list of
  634. sub-menu options.
  635.  
  636. Project
  637. =======
  638.  
  639.    Select the submenu you wish to investigate.
  640.  
  641. Open
  642. ----
  643.  
  644.    Keyboard shortcut - `Amiga - O'
  645.  
  646.    This is how the user loads in an image into the program.
  647.  
  648.    A file requester will appear, through which the user can select a
  649. file to open. Upon selecting a file, ImageStudio will test the file
  650. against its known file formats - loading the file if the image type is
  651. recognised. If the image format is not recognised, an error will be
  652. shown.
  653.  
  654.    In most cases the image will load directly into ImageStudio; however
  655. in the case of HAM6 and HAM8 formats the image is converted into 24-bit
  656. data as it is loaded in, as ImageStudio cannot work directly on HAM
  657. images. For a detailed description of colour-mapped and 24-bit images,
  658. See Image types.
  659.  
  660. Save
  661. ----
  662.  
  663.    Keyboard shortcut - `Amiga - S'
  664.  
  665.    The save requester allows the user to choose the filename for the
  666. saved image as well as the image's format.
  667.  
  668.    To change the filename, either click in the string gadget and edit
  669. the filename directly or click on the `Choose...' gadget to select the
  670. filename with a file requester.
  671.  
  672.    To change the image format of the file to be saved, click in the
  673. listview on the appropriate format. Depending on the format selected,
  674. depends on whether the `Options...' button is available.  Some formats
  675. (e.g. IFF-ILBM) have further options available by clicking on the
  676. `Options...' button.
  677.  
  678.    When the user has selected the filename and the image format, the
  679. file can be saved by clicking on `OK' or no action can be performed by
  680. clicking on `Cancel'. If the currently selected filename already
  681. exists, the user will be warned that they are about to overwrite it.
  682.  
  683. Screen
  684. ------
  685.  
  686.    The user may select the current screen's resolution, number of
  687. colours and font.
  688.  
  689. Screen mode
  690.      The screenmode requester allows the user to change the properties
  691.      of the current screen. Click on the desired screenmode as well as
  692.      the size, number of colours and overscan settings. To bring the
  693.      changes into effect, click on `OK' else to perform no action click
  694.      on `Cancel'.
  695.  
  696. Screen font
  697.      The screenfont requester allows the user to choose the font to be
  698.      used in all the ImageStudio windows and menus. Any Amiga font can
  699.      be used, although if a font which is too large to allow some of the
  700.      windows to fit on the screen is chosen, the program will default
  701.      back to using topaz 8.
  702.  
  703.      Under Workbench2.04, not all gadgets will scale properly with dif
  704.      ferent sized fonts. Checkbox gadgets and mutual exclude (radio but
  705.      ton) gadgets will remain a constant size, which may cause some
  706.      windows to look slightly strange with very large or very small font
  707.      sizes.
  708.  
  709. Prefs
  710. -----
  711.  
  712.    The user may configure the program to their own needs with the prefs
  713. requester. The requester consists of a scrolling list with all the
  714. available preferences, several gadgets that show the current tooltype
  715. value whilst allowing the user to change it, and a couple of checkboxes
  716. for saving the current screenmode and window positions. When the user
  717. is happy with the current values, they may save them as defaults by
  718. clicking `Save', use them for the current session by clicking `Use' or
  719. discard the changes by clicking `Cancel'.
  720.  
  721.    The preferences in the list are separated into string values (e.g.
  722. filenames, ARexx port name etc...), numeric values (e.g. virtual memory
  723. pagesize, number of undo buffers etc...) and boolean, or ON / OFF
  724. values (e.g. Online AmigaGuide help, splash window on startup etc...).
  725. A short description of the preference is shown on the left of the list,
  726. the tooltype (see Tooltypes) name is shown below.
  727.  
  728.    To change a preference value, click on its name in the list. The
  729. current value will be copied to the text or numeric value below; the
  730. exception to this is a boolean preference, see below. The value is
  731. changed by changing the displayed value in the gadget, it will be
  732. stored as this value if another preference is selected or the user
  733. presses `Save' or `Use'. If a string preference is selected that
  734. requires a filename to be chosen, the `Choose...' gadget can be used to
  735. select the desired filename from a file requester.
  736.  
  737.    Boolean preferences are changed by double-clicking on their entries
  738. in the list. The value will toggle between the two states.
  739.  
  740.    If the user wishes to save the current screenmode or window
  741. positions to be the defaults next time the program is started, they may
  742. click on the `Save screenmode' and / or the `Save window positions'
  743. checkboxes.
  744.  
  745.    When changing any of the preferences that require the use of an
  746. external program (e.g. the external text editor), the string must be
  747. formatted to contain a `%s' placed where the filename should be placed.
  748.  
  749.    The default string of
  750.  
  751.      run sys:Tools/Memacs <NIL: >NIL: "%s"
  752.  
  753.    for the `TEXTEDITOR' preference would run Commodore's Micro-emacs
  754. text editor to edit files. It is recommended that the "run" is added at
  755. the start of the string to run the program in the background (i.e.
  756. ImageStudio doesn't have to wait for the text editor to finish) and
  757. that the double-quotes are placed around the `%s' to allow for
  758. filenames containing spaces.
  759.  
  760.    The preferences values may also be read (see ARexx_PREF_GET) and
  761. written (see ARexx_PREF_SET) from ARexx.
  762.  
  763. About
  764. -----
  765.  
  766.    This brings up a small requester containing information about the
  767. program version number and the user name (only in registered version).
  768.  
  769. Info
  770. ----
  771.  
  772.    This brings up an information requester containing memory and file
  773. usage information.
  774.  
  775.    The `Memory' figures are the amount of RAM used by the buffers, the
  776. `VMem' figures are the amount of disk space used by the virtual memory.
  777.  
  778.    At the bottom of the requester the amount of free RAM and ARexx port
  779. name is shown.
  780.  
  781. Help
  782. ----
  783.  
  784.    Keyboard shortcut - `Amiga - H'
  785.  
  786.    This brings up the main page of the AmigaGuide document.
  787.  
  788.    In order for AmigaGuide help to work, the following must be
  789. satisfied:
  790.  
  791.   1. Commodore's AmigaGuide help has to be installed on your system.
  792.      This comes with Workbench3.0+ and can be freely obtained for
  793.      earlier versions of Workbench.
  794.  
  795.   2. The preference `HELP' must be `ON' (see Prefs).
  796.  
  797.   3. The *full* filename of the AmigaGuide helpfile must be given in
  798.      the `HELPFILE' preference (see Tooltype_HELPFILE).
  799.  
  800.    It is recommended that help be turned off if you are short of memory.
  801.  
  802.    Once help is running, it can either be accessed by selecting the
  803. `Help' submenu in the `Project' menu or by performing a standard "help
  804. menu pick" on a menu item. To do this, highlight the menu item you item
  805. you wish to know more about, but instead of releasing the right mouse
  806. button to select the item, press `Help' on the key board. To clarify,
  807. perform the following steps:
  808.  
  809.   1. Press right mouse button.
  810.  
  811.   2. Highlight menu item you wish to find out help on.
  812.  
  813.   3. Press `Help' on the keyboard.
  814.  
  815.   4. Release right mouse button.
  816.  
  817. Create keyfile
  818. --------------
  819.  
  820.    This allows registered users with v1.x.x of ImageStudio to create a
  821. keyfile to `unlock' the freely distributable versions of ImageStudio.
  822.  
  823.    A file requester will open asking the user to select their regis
  824. tered version of ImageStudio v1.x.x. If ImageStudio recognises this as
  825. a registered copy, a keyfile with the name given by the `KEYFILE'
  826. preference (see Tooltype_KEYFILE) will created.
  827.  
  828.    If all is successful, when ImageStudio is next started it will be
  829. fully operational.
  830.  
  831.    A plea:
  832.  
  833.      Please do not give your keyfile to anyone else. Each keyfile is
  834.      individual to each user, so should your keyfile get into
  835.      distribution it can be traced back to you. Don't try altering your
  836.      keyfile, it won't work.
  837.  
  838.      Many thanks for your co-operation in this matter.
  839.  
  840. Iconify
  841. -------
  842.  
  843.    Keyboard shortcut - `Amiga - !'
  844.  
  845.    This reduces the program to a small icon on the Workbench screen. To
  846. reopen the program, simply double-click on the icon. In order to re
  847. duce the amount of memory used by the program when it is iconified,
  848. some of the working memory used by the program is purged; this could
  849. lead to a freeing of several hundred K of memory, depending on the
  850. virtual memory page size and data in internal caches.
  851.  
  852. Quit
  853. ----
  854.  
  855.    This quits the program. If any changes remain unsaved, the user is
  856. warned before the program quits.
  857.  
  858. Edit
  859. ====
  860.  
  861.    Select the submenu you wish to investigate.
  862.  
  863. Undo
  864. ----
  865.  
  866.    Keyboard shortcut - `Amiga - U'
  867.  
  868.    Undos last operation.
  869.  
  870.    The maximum number of undos is set in the preferences requester, See
  871. Prefs.
  872.  
  873. Redo
  874. ----
  875.  
  876.    Keyboard shortcut - `Amiga - R'
  877.  
  878.    Redos last undo.
  879.  
  880.    The maximum number of redos is set in the preferences requester, See
  881. Prefs.
  882.  
  883. Copy
  884. ----
  885.  
  886.    Keyboard shortcut - `Amiga - C'
  887.  
  888.    Copies the current image to the clipboard.
  889.  
  890.    Once the image has been copied to the clipboard it can be used by
  891. any other program that supports the Amiga clipboard.
  892.  
  893. Paste
  894. -----
  895.  
  896.    Keyboard shortcut - `Amiga - V'
  897.  
  898.    Reads in image from the clipboard.
  899.  
  900. Flush buffers
  901. -------------
  902.  
  903.    Flushing the buffers will free any memory and diskspace used by undo
  904. / redo buffers. The user is warned that once the buffers have been
  905. freed, the data cannot be recovered. The current buffer (i.e. the image
  906. in the preview window) is not affected.
  907.  
  908. Region co-ords
  909. --------------
  910.  
  911.    Keyboard shortcut - `Amiga - D'
  912.  
  913.    Allows the user to select a region by typing the co-ordinates.
  914.  
  915.    The region co-ords requester allow the user to specify the selected
  916. region by either typing in the co-ordinates of the minimum and maximum
  917. corners of the rectangle or the minimum co-ordinates and the
  918. rectangle's width and height. A radio button on the left of the
  919. requester shows whether the maximum co-ords or the width and height are
  920. to be used to select the region.
  921.  
  922.    If there is already a selected region, these values are copied into
  923. the requester when it is opened.
  924.  
  925. Region clear
  926. ------------
  927.  
  928.    Removes any selected region from the preview window.
  929.  
  930.    As well as this menu item, the region can be cleared by simply
  931. clicking in the preview window.
  932.  
  933. Select all
  934. ----------
  935.  
  936.    Keyboard shortcut - `Amiga - A'
  937.  
  938.    Makes the selected region the whole of the displayed image in the
  939. preview window.
  940.  
  941.    Note:
  942.  
  943.    If the user has zoomed in on a region of the image (see Zoom_in),
  944. `Select all' will not select the whole image but just the displayed
  945. image in the preview window.
  946.  
  947. View
  948. ====
  949.  
  950.    Select the submenu you wish to investigate.
  951.  
  952. Full image
  953. ----------
  954.  
  955.    Keyboard shortcut - `Amiga - F'
  956.  
  957.    Displays the whole image in the preview window.
  958.  
  959. Zoom in
  960. -------
  961.  
  962.    Keyboard shortcut - `Amiga - <'
  963.  
  964.    Zooms in to make the currently selected region fill the preview
  965. window.
  966.  
  967. Zoom out
  968. --------
  969.  
  970.    Keyboard shortcut - `Amiga - >'
  971.  
  972.    Zooms out by a factor of 3 times.
  973.  
  974. Internal viewer
  975. ---------------
  976.  
  977.    Keyboard shortcut - `Amiga - I'
  978.  
  979.    Views the current image with the internal viewer.
  980.  
  981.    The user may choose the viewer module to be used via the
  982. INTERNALVIEWER preference (see Tooltype_INTERNALVIEWER) to adapt the
  983. view er's capablities based on the Amiga on which it is being used.
  984.  
  985.    In general, if the image is colour-mapped, the viewer will try and
  986. open a screen with the same number of colours as the image. Viewing
  987. 24-bit images is done by using the HAM screenmodes (HAM6 under ECS,
  988. HAM8 under AGA) to approximate the 24-bit image. In order to keep the
  989. viewer reasonably fast, the HAM image sometimes suffers from `colour
  990. fringing' as the approximation is relatively crude (especially under
  991. ECS).
  992.  
  993.    If the CyberGraphX retargetable system is being run on the Amiga
  994. with a compatible graphics card, the image can be viewed using any of
  995. the supplied viewers directly on a 15/16 or 24bit screen.
  996.  
  997.    If the image originated as an IFF-ILBM, the viewer screen will try
  998. and open up in the same screen mode as the image. If this is not
  999. possible, the user may change to a more suitable screenmode with the
  1000. `View screenmode' menu option, See View_screenmode.
  1001.  
  1002.    If the internal viewer won't display the current image, check the
  1003. following:
  1004.  
  1005.   1. If the image was loaded in as an IFF-ILBM, the saved screenmode may
  1006.      not be supported by your machine. For example, the screenmode may
  1007.      be `Productivity' and your machine doesn't have a multiscan
  1008.      monitor.  Simply change the screenmode to one your machine does
  1009.      support - e.g.  `Hires Laced'
  1010.  
  1011.   2. A colour-mapped image contains more colours than it is possible to
  1012.      show on a ECS machine. Either reduce the number of colours in the
  1013.      image to a number that can be displayed or use the `amigaplus.isio'
  1014.      internal viewer to display an approximation in a HAM screen.
  1015.  
  1016.   3. Make sure you have enough CHIP RAM free to open the screen. Large
  1017.      256 colour and 16 million colours images take lots of CHIP RAM.
  1018.  
  1019.    To stop the viewer at any time, press the right mouse button or
  1020. click on `Abort' in the infobar.
  1021.  
  1022.    The following internal viewer modules causes slight differences in
  1023. the behaviour in the way the image is handled in certain cases:
  1024.  
  1025. amiga.isio
  1026.      This module will work with both ECS and AGA Amigas. Colour-mapped
  1027.      images are displayed directly (upto 16 or 32 colours on ECS
  1028.      machines, 256 colours on AGA Amigas) and 24 bit images are shown on
  1029.      HAM6 screens. If the viewer cannot open the desired colour mapped
  1030.      screen, it fails.
  1031.  
  1032. amiga-aga.isio
  1033.      This module will only work with AGA Amigas. It functions exactly
  1034.      the same as the `amiga.isio' module, only it displays 24 bit
  1035.      images in HAM8.
  1036.  
  1037. amigaplus.isio
  1038.      This module is aimed at the ECS Amiga, essentially being the
  1039.      `amiga.isio' module but with the automatic capability of being able
  1040.      to display colour mapped images as HAM6 if the colour mapped image
  1041.      has too many image for the ECS chipset to display directly. This is
  1042.      useful for viewing the many 256 colour images on an ECS Amiga.
  1043.  
  1044. View screenmode
  1045. ---------------
  1046.  
  1047.    This allows the user to set the screenmode of the image, and there
  1048. fore of the internal viewer.
  1049.  
  1050.    Click on the desired screenmode for the image in the screenmode
  1051. requester. The current screenmode is highlighted in the listview.
  1052.  
  1053. External viewer
  1054. ---------------
  1055.  
  1056.    Uses an external viewer program to view the image.
  1057.  
  1058.    This calls up the external viewer program to view the current image.
  1059. If a third party 24-bit graphics card is installed, a viewer can be
  1060. used to view the image on that.
  1061.  
  1062.    To specify the external viewer to use, See Prefs.
  1063.  
  1064. Process
  1065. =======
  1066.  
  1067.    Select the submenu you wish to investigate.
  1068.  
  1069. Crop
  1070. ----
  1071.  
  1072.    Keyboard shortcut - `Amiga - W'
  1073.  
  1074.    Crops the current image to the selected region.
  1075.  
  1076.    This reduces the image to only that which is in the selected region.
  1077. A region must be selected in order for this operation to work.
  1078.  
  1079. Scale
  1080. -----
  1081.  
  1082.    Keyboard shortcut - `Amiga - L'
  1083.  
  1084.    Reduces / increases the size of the image.
  1085.  
  1086.    The scale requester allows the user to change the image's width /
  1087. height by either selecting the absolute size of the new image or the
  1088. percentage by which to scale. A radio gadget to the left shows which
  1089. operation will be performed.
  1090.  
  1091.    The percentage value may also be changed by sliding the width and
  1092. height sliders to achieve the desired final size; divide and multiply
  1093. by 2 buttons are provided to quickly scale the image by common amounts.
  1094.  
  1095.    Finally, two methods of scaling are supported: fast and colour
  1096. average. Fast scaling works with both colour-mapped and 24-bit images
  1097. and produces results adequate for most needs. If the image is to be
  1098. scaled up by a large amount the image may become very `blocky' and if
  1099. the image is scaled down a large amount, information in the image may
  1100. be lost. To reduce this, colour average scaling is available on 24-bit
  1101. images which reduces blockiness when increasing the scale and reduces
  1102. information loss when reducing the scale. Colour average rescale can
  1103. take significantly longer than a fast rescale.
  1104.  
  1105. Colours
  1106. -------
  1107.  
  1108.    Keyboard shortcut - `Amiga - K'
  1109.  
  1110.    Allows increasing / decreasing of the number of colours in the im
  1111. age, with various dithers.
  1112.  
  1113.    The colours requester allows the user control over the number of
  1114. colours in the image. A radio button on the left hand side shows
  1115. whether the current image is colour-mapped or 24-bit.
  1116.  
  1117.    To increase the number of colours in a colour-mapped image, simply
  1118. select the new number of colours with the top cycle gadget or the `No.
  1119. colours' slider. Although the number of colours need not be a power of
  1120. 2 (2, 4, 8, 16, 32, 64, 128 or 256), internally the number will be
  1121. rounded up to the nearest power of 2. If, for example, a 16 colour
  1122. picture was increased to 20 colours then the image would be come a 32
  1123. colour image.
  1124.  
  1125.    Colour-mapped images can also be turned into 24-bit images by click
  1126. ing on the `16 million colours' radio button on the left hand side of
  1127. the requester. This is useful if the user wishes to perform an
  1128. operation on a colour-mapped image that can only be performed on a
  1129. 24-bit image. The resultant 24-bit image can then be turned back into a
  1130. colour-mapped image after the operation is complete.
  1131.  
  1132.    To reduce the number of colours in an image, the same process is
  1133. followed as above with a few differences. Whereas increasing the number
  1134. of colours in an image does not lose any image information, it is
  1135. enevitable that reducing the number of colours must lose some of the
  1136. colour information. In order to help reduce the effect of this, two
  1137. other aids are used: dithering and palette choice.
  1138.  
  1139.    The result of colour reduction is always a colour-mapped image. The
  1140. user may select the number of colours in the final image with the top
  1141. cycle gadget or the `No. colours' slider. Again, although the number of
  1142. colours need not be a power of  2 (2, 4, 8, 16, 32, 64, 128 or 256),
  1143. internally the number will be rounded up to the nearest power of 2.
  1144. This though can be useful, as the user may want to re duce a 24-bit
  1145. image down to 30 colours - leaving 2 spare for his / her own use.
  1146.  
  1147.    In order to give the impression of more colours in the reduced col
  1148. our image, dithering can be employed to smoothly distribute colours
  1149. over areas of high colour change. `Floyd-Steinberg' is the most common
  1150. method and works well in most cases. For larger images, better contrast
  1151. can be obtained by using a more computationally intensive dither
  1152. (`Burkes', `Stucki', `Sierra', `Jarvis') and for the user with large
  1153. images and lots of time to spare, `Stevenson-Arce'.  Again, there is no
  1154. hard and fast rule which method of dithering is best; if you're not
  1155. happy with the result, try a different method.
  1156.  
  1157. Palette
  1158. -------
  1159.  
  1160.    Allows the saving of the current palette and loading of new palette
  1161. onto the current image.
  1162.  
  1163.    Palettes can either be loaded, saved and edited in ImageStudio:
  1164.  
  1165. Palette load
  1166.      This is used to force a palette onto an image. The requester allows
  1167.      the user to choose the palette to load and any dithering to be
  1168.      applied to the image, See Colours. Various sample palettes are
  1169.      given with the distribution to map the image to the Workbench
  1170.      colours or a general purpose palette. New palettes can be generated
  1171.      with any popular paint package(1).
  1172.  
  1173. Palette save
  1174.      Saves the current palette out to the filename chosen by the user in
  1175.      the requester. The palette file is compatible with the popular
  1176.      paint packages. This option has no relevance for 24-bit images, as
  1177.      they have no palette.
  1178.  
  1179. Palette edit
  1180.      This brings up the palette edit requester. Here the user may edit
  1181.      each colour individually or move the colours around with the `Copy'
  1182.      and `Swap' operations. Colour ranges can be created and ranges may
  1183.      be sorted into order of increasing or decreasing luminosity.
  1184.  
  1185.      To edit a colour, simply click on the colour in the scrolling
  1186.      viewer and edit the R,G,B or H,S,V colour values (see Colour
  1187.      representations).
  1188.  
  1189.      To copy or swap two colours, click on the first one in the
  1190.      scrolling viewer then click on either `Copy' or `Swap'. The
  1191.      pointer will change to a "To" pointer to allow you to click on
  1192.      another colour to swap or copy to.
  1193.  
  1194.      To create a colour spread, alter one colour to be the start of the
  1195.      spread and alter another colour to be the end of the spread. Click
  1196.      ing on the first colour, then on `Spread', the on the end colour
  1197.      will cause a smooth transition of colours between the start and end
  1198.      colours.
  1199.  
  1200.      Sorting the colours is like a colour spread, only no colour values
  1201.      are actually changed. Simply click on the start of the sort,
  1202.      followed by either of the `Sort' buttons and finally on the end
  1203.      colour.  The colours between these values will be sorted into
  1204.      either an in creasing or decreasing order of luminosity.
  1205.  
  1206.      Finally, to apply the new colour palette to the image click on
  1207.      `OK'.  To remap the image to the new palette (swap the old colours
  1208.      with their nearest match in the new palette), click on `Remap'.
  1209.  
  1210.      Whilst changing the colours in the scrolling viewer, the colours in
  1211.      the preview window will change. *This is not a representation of
  1212.      what is happening to the image!*.
  1213.  
  1214.    ---------- Footnotes ----------
  1215.  
  1216.    (1)  Except Brilliance, which seems to save all 384 colours of its
  1217. palette.
  1218.  
  1219. Tools
  1220. =====
  1221.  
  1222.    Select the submenu you wish to investigate.
  1223.  
  1224. Command shell
  1225. -------------
  1226.  
  1227.    Keyboard shortcut - `Amiga - 0'
  1228.  
  1229.    Opens the ARexx command shell.
  1230.  
  1231.    The command shell allows the user to enter ARexx commands directly,
  1232. without having to write a script file (see Show_scripts). This means
  1233. that the effect of the ARexx command may be seen directly, allowing the
  1234. commands to be experimented with before adding them to a script.
  1235.  
  1236.    The values returned by a command are displayed in a readable form in
  1237. the command shell.
  1238.  
  1239.    It should be noted that the command shell differs from executing an
  1240. actual ARexx script in the following ways:
  1241.  
  1242.   1. Each entered command is passed directly to ImageStudio without
  1243.      going through ARexx first. This means that no ARexx statements can
  1244.      be used (e.g. loops) and no variables may be defined.
  1245.  
  1246.   2. The string entered in the command shell is *exactly* what is seen
  1247.      by the ImageStudio command parser - nothing is evaluated. It is
  1248.      not neccessary therefore to enclose strings in both single and
  1249.      double quotes to stop them from being evaluated. For example, the
  1250.      following line is valid in the command shell, but invalid in an
  1251.      ARexx script as the string would have its quotes removed (see
  1252.      Common ARexx problems):
  1253.  
  1254.           REQUEST_MESSAGE TEXT "A string with spaces in it"
  1255.  
  1256.  
  1257.    Help on a particular command's template (see Command templates) can
  1258. be obtained by typing:
  1259.  
  1260.      help <command>
  1261.  
  1262.    in the command shell. The command's template for the input and
  1263. return values will be show.
  1264.  
  1265. Show balance
  1266. ------------
  1267.  
  1268.    Keyboard shortcut - `Amiga - 1'
  1269.  
  1270.    Opens / closes the balance floating palette.
  1271.  
  1272.    The balance floating palette is used to control the brightness,
  1273. contrast and gamma of the current image. On 24-bit images, the colour
  1274. balance can be altered on selected regions as well as the whole image
  1275. whereas colour-mapped images only allow alterations to the whole image.
  1276.  
  1277.    The colour balance effects are usually applied to all the red /
  1278. green / blue components simultaneously, but each component can be
  1279. altered individually by checking the `Red', `Green' or `Blue' check
  1280. boxes at the bottom of the floating palette.
  1281.  
  1282.    The effect of changing either the brightness, contrast or gamma can
  1283. be seen in the graph on the right hand side of the floating palette.
  1284. The graph shows the input RGB component along the X-axis and the output
  1285. RGB component along the Y-axis.
  1286.  
  1287.           output
  1288.       Light RGB ^
  1289.             |
  1290.             |
  1291.             |
  1292.             |
  1293.             |
  1294.        Dark RGB |
  1295.             +-------> input
  1296.             Dark RGB  Light RGB
  1297.  
  1298.    No operation is shown therefore with a straight diagonal line - the
  1299. input value is mapped to the same output value.
  1300.  
  1301.           output
  1302.             ^
  1303.             |     /
  1304.            x|____/
  1305.             |   /|
  1306.             |  / |
  1307.             | /  |
  1308.             |/   |
  1309.             +-------> input
  1310.              x
  1311.  
  1312. Brightness
  1313.      Altering the brightness is achieved by mutliplying up / down the
  1314.      RGB components by the specified amount. The range of the slider is
  1315.      from -100% (everything becomes black) to +100% (everything is
  1316.      twice as bright).
  1317.  
  1318. Contrast
  1319.      Altering the contrast forces dark colours darker and light colours
  1320.      lighter. The range of the slider is from -100% (everything becomes
  1321.      mid grey) to +100% (RGB components are either on/off).
  1322.  
  1323.      Note: 100% contrast on a colour image doesn't produce a black and
  1324.      white image as may be expected. As each RGB component is treated
  1325.      individually, it leaves you with an 8 colour image - the 8 colours
  1326.      being composed of combinations of the RGB components as below:
  1327.  
  1328.     Black
  1329.           0% Red, 0% Green, 0% Blue
  1330.  
  1331.     Red
  1332.           100% Red, 0% Green, 0% Blue
  1333.  
  1334.     Green
  1335.           0% Red, 100% Green, 0% Blue
  1336.  
  1337.     Blue
  1338.           0% Red, 0% Green, 100% Blue
  1339.  
  1340.     Yellow
  1341.           100% Red, 100% Green, 0% Blue
  1342.  
  1343.     Magenta
  1344.           100% Red, 0% Green, 100% Blue
  1345.  
  1346.     Cyan
  1347.           0% Red, 100% Green, 100% Blue
  1348.  
  1349.     White
  1350.           100% Red, 100% Green, 100% Blue
  1351.  
  1352.      If you wish to turn a colour image into 2 colour black and white,
  1353.      greyscale the image first with the greyscale effect, See Effects.
  1354.  
  1355. Gamma
  1356.      Adjusting the gamma of an image has the effect of lightening some
  1357.      of the mid-dark colours, whilst leaving the dark colours dark.
  1358.      This can often enhance the eye's perception of the image, as the
  1359.      eye is more responsive to light colours. Gamma correction can also
  1360.      be useful when printing an image out, as mid-dark colours tend to
  1361.      get printed too dark.
  1362.  
  1363.      Only small alterations are usually needed with this operator (-20%
  1364.      to +20%).
  1365.  
  1366. Show effects
  1367. ------------
  1368.  
  1369.    Keyboard shortcut - `Amiga - 2'
  1370.  
  1371.    Opens / closes the effects floating palette.
  1372.  
  1373.    The effects floating palette contains a list of ImageStudio's built
  1374. in effects. Not all types of effect can be applied to all types of
  1375. buffer, the details are given below. Any numerical values required by
  1376. the individual effects are set using the slider on the effect floating
  1377. palette.
  1378.  
  1379.    An effect can be applied by clicking on the `Apply' button or
  1380. double-clicking on the list entry.
  1381.  
  1382.    See Effects, for details of all available effects.
  1383.  
  1384. Show convolves
  1385. --------------
  1386.  
  1387.    Keyboard shortcut - `Amiga - 3'
  1388.  
  1389.    Opens / closes the convolves floating palette.
  1390.  
  1391.    The convolves floating palette allows the user to apply their own
  1392. convolution effects to a 24-bit image; convolution will not work on
  1393. colour-mapped images.
  1394.  
  1395.    To create a new convolution filter, select `New' and then `Edit'
  1396. from the floating palette. The convolve grid requester contains the
  1397. convolution filter's name at the top as well as gadgets for the filter,
  1398. divisor and bias values. When the user has set the filter values, click
  1399. on `OK' to return to the convolve floating palette.
  1400.  
  1401.    To apply a filter, select it in the listview and click on `Apply'.
  1402. To delete a filter from the list, click on `Del'. This will not delete
  1403. the file from the disk, this has to be done from the Workbench.
  1404.  
  1405.    To scan a new drawer for convolution filters, click on `Load' and
  1406. select a directory to scan. To save the current list's convolution
  1407. filters, click on `Save' and select a drawer to save to.
  1408.  
  1409.    The default drawer to scan at startup is set in the preferences, See
  1410. Prefs.
  1411.  
  1412.    A convolve can be applied by clicking on the `Apply' button or
  1413. double-clicking on the list entry.
  1414.  
  1415.    What follows is a quick description of convolution, it is not
  1416. necessary to understand this to use the filters.
  1417.  
  1418.    It is convenient think of the convolution filter as an array of
  1419. numbers that "slides" over the image a pixel at a time. To find the new
  1420. colour value of the pixel at the centre of the filter, multiply the
  1421. filter values by the values of the colours under the array then divide
  1422. the result by the `Div' value, then add the `Bias' value.
  1423.  
  1424.    If we take the example of 3 x 3 `blur low' filter being applied to
  1425. the pixels below:
  1426.  
  1427.      filter                  pixels
  1428.      
  1429.      0 1 0                   a b c
  1430.      1 2 1  convolved with   d e f   gives:
  1431.      0 1 0                   g h i
  1432.  
  1433.    ((0 x a) + (1 x b) + (0 x c) + (1 x d) + (2 x e) + (1 x f) + (0 x g)
  1434. + (1 x h) + (0 x i)) / Div + Bias
  1435.  
  1436.    which would be applied to the new pixel in the position of the `e'
  1437. pixel.
  1438.  
  1439.    Although the pixels shown above are shown as `a', `b' etc...  they
  1440. are actually the 3 red, green and blue values that comprise the colour.
  1441.  
  1442.    Examples:
  1443.  
  1444.   1.      0 0 0
  1445.           0 1 0
  1446.           0 0 0
  1447.           Div = 3, Bias = 0
  1448.      would make each pixel one third of its original brightness.
  1449.  
  1450.   2.      0 0 0
  1451.           0 0 0
  1452.           0 1 0
  1453.           Div = 1, Bias = 0
  1454.      would move each pixel up by one.
  1455.  
  1456.   3.      0 0 0
  1457.           0 1 0
  1458.           0 0 0
  1459.           Div = 1, Bias = 50
  1460.      would add 50 onto each of the red, green, blue components of the
  1461.      centre pixel.
  1462.  
  1463.    Note:
  1464.  
  1465.    * The red, green, blue components of a pixel can have values in the
  1466.      range 0 to 255. If a convolution value is greater than 255 it is
  1467.      made equal to 255. Similarly if a convolution value is less than 0
  1468.      it is made equal to 0.
  1469.  
  1470.    * ImageStudio has optimized routines for 1x1, 3x3 and 5x5 filters. If
  1471.      the program detects that only values in a 3x3 filter are being
  1472.      used, only calculations for a 3x3 filter are performed.
  1473.  
  1474. Show scripts
  1475. ------------
  1476.  
  1477.    Keyboard shortcut - `Amiga - 4'
  1478.  
  1479.    Opens / closes the scripts floating palette.
  1480.  
  1481.    The scripts floating palette gives a list of easily available ARexx
  1482. scripts for the user to apply.
  1483.  
  1484.    To execute a script in the list, select the desired script and click
  1485. on `Apply' or simply double-click on the list entry. The script can be
  1486. stopped by either clicking on `Abort' during any operation or choosing
  1487. `Cancel' on any given requester (if the script is written correctly,
  1488. that is). See Writing scripts, for more information on creating ARexx
  1489. scripts.
  1490.  
  1491.    New scripts can be created by clicking on `New...' button. The user
  1492. is requested to name the new script and it is placed in the listview.
  1493. By default, the script will already contain some ARexx commands to help
  1494. the user - the user simply adds what is neccessary.
  1495.  
  1496.    To edit the currently selected script, the `Edit...' button is used.
  1497. The text editor set in the preferences (see Prefs) is used to edit the
  1498. file.
  1499.  
  1500.    The `Load...' button allows the user to scan another directory for
  1501. ARexx script files. `Other...' will let the user select another ARexx
  1502. script file to run, without adding it to the list.
  1503.  
  1504. Show coords
  1505. -----------
  1506.  
  1507.    Keyboard shortcut - `Amiga - 5'
  1508.  
  1509.    Opens / closes co-ords floating palette.
  1510.  
  1511.    The co-ords floating palette shows the current position in the image
  1512. of the mouse pointer. When dragging box to select a region, the current
  1513. region width and height are shown.
  1514.  
  1515. ARexx
  1516. *****
  1517.  
  1518.    This chapter gives information about the program's interface to the
  1519. ARexx programming language.
  1520.  
  1521. Introduction to ARexx
  1522. =====================
  1523.  
  1524.    ARexx is the script language that is distributed with all Amigas
  1525. sporting Workbench 2.04 and above. It is used on the Amiga for two main
  1526. tasks:
  1527.  
  1528.   1. Providing an easy and consistent method of adding macro facilities
  1529.      to programs.
  1530.  
  1531.   2. To allow ARexx aware programs to communicate with each other.
  1532.  
  1533.    Most users are dissuaded from using ARexx with their programs be
  1534. cause of the learning curve involved in (i) learning ARexx and (ii)
  1535. using the functions provided with each program. With ImageStudio, we
  1536. have tried to simplify the process of creating an ARexx script by:
  1537.  
  1538.   1. Providing an easy interface for creating and running the scripts.
  1539.  
  1540.   2. Providing a ready-made script template which the user can just
  1541.      "fill in the blanks" to produce a fully working program.
  1542.  
  1543.   3. Providing many commands to perform commonly performed operations.
  1544.      This means the user needs to write less code in ARexx and doesn't
  1545.      need to rely on external utilities and libraries to perform the
  1546.      operations.
  1547.  
  1548.    Typical uses for ARexx in ImageStudio include:
  1549.  
  1550.    * Batch processing. ImageStudio can now be told to repeatedly perform
  1551.      the same operation on many images. The user could, for example,
  1552.      convert all PCX files in a given directory into IFF-ILBM files.
  1553.  
  1554.    * Background processing. ImageStudio can be told to watch a given di
  1555.      rectory and whenever a new file is generated to perform a set of op
  1556.      erations on it. This is useful for producing ray-traced animations,
  1557.      where each frame of the animation could be converted from 24bits to
  1558.      HAM6 (say) as each frame was generated by the ray tracer.
  1559.  
  1560.    * Adding additional image manipulation abilities to other programs.
  1561.      ImageStudio could be passed an image from another program, process
  1562.      it, then return it back to the original program. By using a desktop
  1563.      publishing package that supports ARexx, an image could be saved
  1564.      from the DTP program, gamma corrected by ImageStudio, then
  1565.      reloaded back into the DTP program all automatically.
  1566.  
  1567.    Many example files are given with ImageStudio (see Example scripts),
  1568. which can either be used directly or modified to perform the desired
  1569. operation.
  1570.  
  1571.    In order for ARexx to be available to ImageStudio, you must start
  1572. ARexx at startup time by including the line:
  1573.  
  1574.      rexxmast >NIL:
  1575.  
  1576.    in your `User-Startup' file in the `S:' directory. Normally this
  1577. line should be present in your User-Startup, but if you find no scripts
  1578. run from ImageStudio you must add this line manually.
  1579.  
  1580. Writing scripts
  1581. ===============
  1582.  
  1583.    We have tried to simplify the process of writing an ARexx script as
  1584. much a possible to provide access to the power of ARexx scripts without
  1585. (too much(!)) pain.
  1586.  
  1587.    An ARexx script can be written and run without ever having to leave
  1588. ImageStudio. The only extra tool needed is a text editor; ImageStudio
  1589. can be configured to use your favourite text editor by changing the
  1590. program's preferences (see Prefs). The basic process of creating an
  1591. ARexx script is as follows:
  1592.  
  1593.   1. Open the `Scripts' floating palette.
  1594.  
  1595.   2. Create and name the new script by clicking on `New...'.
  1596.  
  1597.   3. Load the blank script template into your editor by clicking on
  1598.      `Edit...'.
  1599.  
  1600.   4. Add the desired commands to the template in the space provided.
  1601.  
  1602.   5. Save the file and exit the text editor.
  1603.  
  1604.   6. Run the script by clicking on the `Apply' button on the scripts
  1605.      floating palette.
  1606.  
  1607.    Any errors the script may generate will be displayed in a requester
  1608. on the ImageStudio screen.
  1609.  
  1610.    To try this process out, try the following:
  1611.  
  1612.   1. Open the `Scripts' floating palette.
  1613.  
  1614.   2. Click on `New...' and call the script "FirstScript".
  1615.  
  1616.   3. Edit the new script by clicking on `Edit...'.
  1617.  
  1618.   4. In the space provided in the script, type the following lines:
  1619.  
  1620.           OPEN "Pics/FW14B_250x250.gif"
  1621.           SCALE 80 40
  1622.           PALETTE_LOAD "Palettes/Workbench4.palette" DITHER FS
  1623.           VIEW
  1624.  
  1625.   5. Save the file and exit the text editor.
  1626.  
  1627.   6. Run the script by clicking on the `Apply' button on the scripts
  1628.      floating palette.
  1629.  
  1630.    The result of the above script should be a 4 colour icon sized image
  1631. of a Formula1 racing car. This could now be copied into the clip board
  1632. by selecting `Copy' in the `Edit' menu and pasted into Commodore's
  1633. IconEdit program for final conversion into an icon.  Alternatively, the
  1634. command to copy the image into the clipboard could be added to the end
  1635. of the script.
  1636.  
  1637.    See ARexx commands, for a full description of the ARexx commands
  1638. used in the above example.
  1639.  
  1640.    Note, please don't remove the "/* BEGIN PROGRAM ****" and corre
  1641. sponding "END PROGRAM" lines in the blank macro template - these will
  1642. be used to insert the recorded ARexx macros when they are implemented
  1643. (see Future additions).
  1644.  
  1645. Basic ARexx
  1646. ===========
  1647.  
  1648.    This section is meant as a beginners guide to using ARexx with Imag
  1649. eStudio. We cannot hope to teach you the ARexx language, although it is
  1650. only neccessary to the know the very basics to start using ARexx
  1651. scripts with ImageStudio. It is assumed that the user is editing and
  1652. running their scripts from within ImageStudio (see Show_scripts).
  1653.  
  1654.    For further information on ARexx, we suggest reading Commodore's
  1655. ARexx user guide supplied with the A4000 or the Workbench2 and 3 up
  1656. grade packs. For A600 and A1200 users who don't get this manual, we
  1657. recommend the "ARexxGuide" AmigaGuide document by Robin Evans which is
  1658. a shareware document containing extensive information on the ARexx
  1659. language. The guide can be obtained from all good PD houses.
  1660.  
  1661.    The ARexx programming language is similar to many other programming
  1662. languages in its structure. Users who have BASIC, C, FORTRAN, Pascal,
  1663. Modula2 or Oberon experience will notice many similarites. It is not
  1664. similar to Assember language, Lisp or Prolog. An ARexx pro gram is, in
  1665. its simplest form, a list of instructions for ImageStudio to perform.
  1666. Here is a simple ARexx program:
  1667.  
  1668.      /* A simple ARexx program */
  1669.      
  1670.      REQUEST_MESSAGE TEXT '"Hello world!"'
  1671.      
  1672.      exit
  1673.  
  1674.    This shows some important things about an ARexx program:
  1675.  
  1676.   1. All ARexx programs *must* start with a comment line. A comment
  1677.      line is a line which starts with the `/*' sequence of characters
  1678.      and ends with the `*/' characters. Anything between these
  1679.      characters is ignored by ARexx.
  1680.  
  1681.   2. For clarity, all of ImageStudio's commands are shown CAPITALISED,
  1682.      ARexx commands are kept in lower case. REQUEST_MESSAGE is therefore
  1683.      an ImageStudio command that should be performed.
  1684.  
  1685.   3. The REQUEST_MESSAGE has some `arguments' or `parameters' following
  1686.      it. These tell the REQUEST_MESSAGE command how to behave, in this
  1687.      case they tell the command to pop up greeting message.
  1688.  
  1689.   4. To stop an ARexx program, use the command `exit'.
  1690.  
  1691.    OK, lets enhance our program a little:
  1692.  
  1693.      /* A better simple ARexx program */
  1694.      
  1695.      REQUEST_MESSAGE TEXT '"What do you think of\n'||,
  1696.         'the show so far?"',
  1697.         BUTTONTEXT "Great|Mediocre|Rubbish"
  1698.      
  1699.      exit
  1700.  
  1701.    From this example we learn:
  1702.  
  1703.   1. To separate a long command line, place a comma `,' as the last
  1704.      character on the line. This tells ARexx to treat the next line as a
  1705.      continuation of the previous. Two line breaks are used in the above
  1706.      example.
  1707.  
  1708.   2. ARexx loves to evaluate things. If we want to stop ARexx evaluating
  1709.      variables, the variable should be enclosed in single quotes ` ' '.
  1710.  
  1711.    See ARexx problem 1, if little explanation is needed as to the many
  1712. double and single quotes used above. If we now tell you that the `\n'
  1713. characters are used represent a newline and the `||' characters glue
  1714. string together, we should see that:
  1715.  
  1716.      '"What do you think of\n'||'the show so far?"'
  1717.  
  1718.    would be evaluated to:
  1719.  
  1720.      "What do you think of*the show so far?"
  1721.  
  1722.    where `*' represents a newline. The lesson to be learnt here is that
  1723. whenever you use a string (with or without spaces) it is best to
  1724. enclose the whole thing in single quotes outside the double quotes to
  1725. keep the whole thing together.
  1726.  
  1727.    On with the examples. The previous script isn't much use if we can't
  1728. test for which button the user pressed, so:
  1729.  
  1730.      /* A better simple ARexx program */
  1731.      
  1732.      options results
  1733.      
  1734.      REQUEST_MESSAGE TEXT '"What do you think of\n'||,
  1735.         'the show so far?"',
  1736.         BUTTONTEXT "Great|Mediocre|Rubbish"
  1737.      
  1738.      if RESULT == 0 then
  1739.         REQUEST_MESSAGE TEXT '"Sorry, I was trying very hard."'
  1740.      else if RESULT == 2 then
  1741.         REQUEST_MESSAGE TEXT '"It gets better."'
  1742.      else do
  1743.         REQUEST_MESSAGE TEXT '"We like happy users."'
  1744.         REQUEST_MESSAGE TEXT '"Treat yourself to a coffee."'
  1745.         end
  1746.      
  1747.      exit
  1748.  
  1749.    This shows:
  1750.  
  1751.   1. Normally ARexx ignores the values returned by commands. To allow
  1752.      commands to return values, use "options results"; this is done for
  1753.      you in the blank ARexx script.
  1754.  
  1755.   2. Unless otherwise specified (see Return values) commands return the
  1756.      results of their operation in a variable called "RESULT". The
  1757.      command REQUEST_MESSAGE returns the value of the button that the
  1758.      user pressed.  It is this value that we can test for.
  1759.  
  1760.   3. The `if' tests are shown above. Note that if you only want to
  1761.      perform one operation as part of the `if', you can just place it
  1762.      after the `then'. If you wish to perform more operations, they
  1763.      must be placed in  a `do / end' set.
  1764.  
  1765.    OK, that's about it for the introduction to ARexx. We really suggest
  1766. now that you look at the example scripts provided with ImageStudio (see
  1767. Example scripts) to learn more examples. Have fun!
  1768.  
  1769.    Note, if you use any ARexx command which prints text out (e.g.
  1770. "say"), this text is printed to the file given by the tooltype
  1771. REXXOUTPUT (see Tooltype_REXXOUTPUT). After the script has been
  1772. executed, this file can be examined.
  1773.  
  1774. Command templates
  1775. =================
  1776.  
  1777.    The parameters passed to the ARexx commands closely follow
  1778. Commodore's style guidelines. The parsing of the arguments follows the
  1779. standard template format described below.
  1780.  
  1781.    Commands are always of the form:
  1782.  
  1783.      command [options]
  1784.  
  1785.    The command may be something like `OPEN' or `SCALE' and the options
  1786. may be filenames, numbers etc... A typical command template may look
  1787. like:
  1788.  
  1789.      OPEN FILE/A,FORMAT,ARGS,FORCE/S
  1790.  
  1791.    The commands and options are not case sensitive, therefore `OPEN',
  1792. `Open' or `open' can be used to open a file. The options after the
  1793. command name are separated by commas, and are named (e.g. FILE or FORCE
  1794. are option names). After the name, follows an optional modi fier (e.g.
  1795. /A or /S are modifiers) which describes what type of in formation the
  1796. option specifies.
  1797.  
  1798.        When using the command, the option names may be ommitted if the
  1799. parameters for the command are given in the same order as the options
  1800. in the template, but for clarity it is recommended that the option
  1801. names be used.
  1802.  
  1803.    The following modifiers are used:
  1804.  
  1805. No modifier
  1806.      If the option has no modifier, the option is expecting a string.
  1807.      Strings are lines of text with no spaces; to use a string with a
  1808.      space, place the string in double-quotes (").
  1809.  
  1810. Multiple strings (/M)
  1811.      Many strings can be specified if an option uses this modifier.
  1812.  
  1813. Numeric (/N)
  1814.      Numeric options allow both positive and negative integers. Floating
  1815.      point numbers are not yet used by ImageStudio.
  1816.  
  1817. Boolean (/S)
  1818.      Some options can be specified to "switch" that option on. By
  1819.      leaving the option out, the option is switched off.
  1820.  
  1821. Keyword (/K)
  1822.      A keyword option shows that the option name must be used to set
  1823.      this option.
  1824.  
  1825. Always (/A)
  1826.      This option must always be included in this command.
  1827.  
  1828.    In practice, it soon becomes very easy to interpret command
  1829. templates - some examples with explanations are given below:
  1830.  
  1831.      OPEN FILE/A,FORMAT,ARGS,FORCE/S
  1832.  
  1833.    The command `OPEN' is used to open a file and load it into
  1834. ImageStudio. OPEN requires a filename (FILE/A is a string, and is
  1835. always required), an optional FORMAT string, an optional ARGS string
  1836. and and optional FORCE switch. The following are valid OPEN commands:
  1837.  
  1838.    The following would load a file called
  1839. `Pics/CheetahFace250x200.ilbm', forcing the old project to be over
  1840. written:
  1841.  
  1842.      OPEN FILE "Pics/CheetahFace250x200.ilbm" FORCE
  1843.  
  1844.    The following would load a file called `Ram Disk:Tulip.jpg', asking
  1845. first if the current project has changed:
  1846.  
  1847.      OPEN '"Ram Disk:Tulip.jpg"'
  1848.  
  1849.    The following is an error, if the filename has spaces in it, it
  1850. should be enclosed in single and double-quotes:
  1851.  
  1852.      OPEN "Ram Disk:Tulip.jpg"
  1853.  
  1854.      SCALE X/N,Y/N,PERCENT/S,METHOD
  1855.  
  1856.    `SCALE' is used to change the size of the image (see ARexx_SCALE).
  1857. SCALE expects two numerical values (X/N,Y/N are numbers but neither are
  1858. required), can be used to scale either to an absolute size or by a
  1859. given percentage (adding the PER CENT switch specifies percentage
  1860. scaling) and can use a variety of methods (METHOD is used to specify a
  1861. description string of the method to be used - again, if this is not
  1862. specified a default method is used). The following are valid SCALE
  1863. commands:
  1864.  
  1865.    The following scales the image to 640x480 pixels:
  1866.  
  1867.      SCALE X 640 Y 480
  1868.  
  1869.    The following makes the image 50 percent of its original height:
  1870.  
  1871.      SCALE Y 50 PERCENT
  1872.  
  1873.    The following scales the image to 800x600 pixels using the colour
  1874. averaging method:
  1875.  
  1876.      SCALE 800 600 METHOD AVERAGE
  1877.  
  1878.    The following is an error, no X or Y values given:
  1879.  
  1880.      SCALE X PERCENT
  1881.  
  1882.    The following is an error, floating point values are not allowed:
  1883.  
  1884.      SCALE Y 127.5
  1885.  
  1886.    See ARexx commands, for more detailed descriptions of each of the
  1887. individual ARexx commands.
  1888.  
  1889. Return values
  1890. =============
  1891.  
  1892.    The return values for the ARexx commands are specified in the same
  1893. notation as the input parameters, although the types of returned values
  1894. is more limited than the input parameter types. In order for results to
  1895. be returned from ARexx commands, it is essential that the line:
  1896.  
  1897.      options results
  1898.  
  1899.    be placed near the start of the ARexx script.
  1900.  
  1901.    Commands may return either strings, numbers or arrays of either. By
  1902. default, all ARexx commands return their values in a variable called
  1903. "RESULT". This is fine if the command returns a single number or
  1904. string. For example, the following call to the FILE_JOIN command (see
  1905. ARexx_FILE_JOIN) would return the string "T:Image.ilbm" in the RESULT
  1906. variable:
  1907.  
  1908.      FILE_JOIN PATHPART "T:" FILEPART "Image.ilbm"
  1909.  
  1910.    If the user wishes to return the result in another variable other
  1911. than RESULT, they may specify the VAR keyword. For example, the
  1912. following would perform the same action as above, only putting the
  1913. result in the varible called "FULLNAME"
  1914.  
  1915.      FILE_JOIN PATHPART "T:" FILEPART "Image.ilbm" VAR FULLNAME
  1916.  
  1917.    Some ARexx commands return multiple values, and these to can be re
  1918. turned in a single variable - each returned value in the variable is
  1919. seperated with a space. The following returns information about the
  1920. current image (see ARexx_IMAGEINFO_GET):
  1921.  
  1922.      IMAGEINFO_GET
  1923.  
  1924.    and the RESULT variable might look something like:
  1925.  
  1926.      640 400 8 Pics/Zebra.ilbm 32772
  1927.  
  1928.    It is possible then to extract the desired information using ARexx's
  1929. built in parsing routines. A neater way to return multiple values
  1930. though is through a "stem" variable. Here, a base name for a variable
  1931. is given and the returned values' names get added to it. It is clearer
  1932. with an example:
  1933.  
  1934.      IMAGEINFO_GET STEM IMAGEINFO.
  1935.  
  1936.    would return the same information as previously, only it would
  1937. create the following variables:
  1938.  
  1939.      IMAGEINFO.WIDTH = 640
  1940.      IMAGEINFO.HEIGHT = 400
  1941.      IMAGEINFO.DEPTH = 8
  1942.      IMAGEINFO.FILE = Pics/Zebra.ilbm
  1943.      IMAGEINFO.MODEID = 32772
  1944.  
  1945.    Now you can refer easily to the returned values.
  1946.  
  1947.    If an ARexx function returns an array of results, they are named as
  1948. follows:
  1949.  
  1950.      STEMNAME.RESULTNAME.NUMBER
  1951.  
  1952.    with the variable STEMNAME.RESULTNAME.COUNT holding the number of
  1953. returned results. Again, an example being the following which gets all
  1954. the ".ilbm" images in the "Pics" dirctory:
  1955.  
  1956.      FILES_MATCH PATHPART "Pics" PATTERN "#?.ilbm" STEM MATCHED.
  1957.  
  1958.    which might return the following:
  1959.  
  1960.      MATCHED.FILEPARTS.COUNT = 4
  1961.      MATCHED.FILEPARTS.0 = Zebra.ilbm
  1962.      MATCHED.FILEPARTS.1 = WilliamsFW14B.ilbm
  1963.      MATCHED.FILEPARTS.2 = Spitfire.ilbm
  1964.      MATCHED.FILEPARTS.3 = Brightside.ilbm
  1965.  
  1966.    See ARexx tips, for more information on how to turn array stem
  1967. variables into string variables.
  1968.  
  1969. Error checking
  1970. ==============
  1971.  
  1972.    ImageStudio uses the standard ARexx method of returning errors, with
  1973. a further extension.
  1974.  
  1975.    Whenever a command is executed, a variable called "RC" has its value
  1976. set by ARexx. If the command executed normally, RC is set to zero.  If
  1977. any failure happened, RC is set to either 5 (warning), 10 (failure) or
  1978. 20 (serious failure).
  1979.  
  1980.    ImageStudio also sets the value of a further variable called "RC2",
  1981. which either contains a text description of the reason for failure or a
  1982. standard AmigaDos error code.
  1983.  
  1984.    A description string is returned in RC2 if a failure occurs within
  1985. the execution of a command. RC2 will be an AmigaDos error number if
  1986. there is an error with the command syntax (e.g. mis-spelled command
  1987. name or missing quotes).
  1988.  
  1989.    If, for example the user was to try to use the scale command when
  1990. there was no image in the buffer, RC and RC2 would be set to the
  1991. following:
  1992.  
  1993.      RC = 10
  1994.      RC2 = "SCALE, No image"
  1995.  
  1996.    If the scale operation were to be performed with the command:
  1997.  
  1998.      SCLAE 80 40
  1999.  
  2000.    the following values would be set:
  2001.  
  2002.      RC = 10
  2003.      RC2 = 236
  2004.  
  2005.    where AmigaDos error 236 represents `not implemented', i.e. unknown
  2006. command. The default blank script template will convert the most common
  2007. likely AmigaDos error codes into description strings (see Commodore's
  2008. AmigaDos manual for a full description of AmigaDos errors).
  2009.  
  2010.    By default, the blank script template turns on automatic error
  2011. checking. The line:
  2012.  
  2013.      signal on error
  2014.  
  2015.    tells ImageStudio to jump to the ERROR: label whenever a command
  2016. fails. The blank script then puts up a requester showing the error.
  2017.  
  2018.    The user may wish to turn off the automatic error checking to
  2019. perform error checking themselves. This is neccessary, for example, if
  2020. the user wishes to trap the user pressing `Cancel' on a requester (this
  2021. returns an error). The following checks when the user cancels the file
  2022. requester:
  2023.  
  2024.      /* Turn off automatic error checking */
  2025.      
  2026.      signal off error
  2027.      
  2028.      /* Open the requester */
  2029.      
  2030.      REQUEST_FILE
  2031.      
  2032.      /* Check for the error condition */
  2033.      
  2034.      if RC ~= 0 then do
  2035.         REQUEST_MESSAGE TEXT '"An error occurred (user\n'||,
  2036.            'probably pressed Cancel)"'
  2037.         end
  2038.      else do
  2039.         REQUEST_MESSAGE TEXT '"You chose: '||RESULT||'"'
  2040.         end
  2041.  
  2042. Common ARexx problems
  2043. =====================
  2044.  
  2045. ARexx problem 1
  2046. ---------------
  2047.  
  2048.      "I can't use strings with spaces in them."
  2049.  
  2050.    Care must be taken when specifying string paramters when the string
  2051. contains space characters. Single quotes must be used around double
  2052. quotes to stop the string from being seen as many different strings.
  2053.  
  2054.    Consider the following example:
  2055.  
  2056.      REQUEST_MESSAGE TEXT "Hello"
  2057.  
  2058.    ARexx would evaluate the string "Hello" and give ImageStudio the
  2059. following command to execute:
  2060.  
  2061.      REQUEST_MESSAGE TEXT Hello
  2062.  
  2063.    i.e. without the double quotes. In this example, REQUEST_MESSAGE
  2064. would do as expected. The problems start when strings have spaces in
  2065. them; consider the following:
  2066.  
  2067.      REQUEST_MESSAGE TEXT "Hello world"
  2068.  
  2069.    ARexx would evaluate the string "Hello world" and give ImageStudio
  2070. the following command to execute:
  2071.  
  2072.      REQUEST_MESSAGE TEXT Hello world
  2073.  
  2074.    which is not what is desired. The Hello becomes the TEXT value and
  2075. the world becomes the value of the next parameter (BUTTONTEXT in this
  2076. case). The result would be a requester with the text of "Hello" and a
  2077. button called "world". Now we must use the single quotes to stop ARexx
  2078. from evaluating the string:
  2079.  
  2080.      REQUEST_MESSAGE TEXT '"Hello world"'
  2081.  
  2082.    would send ImageStudio the following command:
  2083.  
  2084.      REQUEST_MESSAGE TEXT "Hello world"
  2085.  
  2086.    which shows that the whole string "Hello world" belongs to the TEXT
  2087. parameter.
  2088.  
  2089. ARexx problem 2
  2090. ---------------
  2091.  
  2092.      "I can't use AmigaDos commands in a script."
  2093.  
  2094.    There is a bug which causes ImageStudio to sometimes crash the
  2095. machine if the output from AmigaDos command is not properly
  2096. re-directed. The stdin and stdout for all external CLI commands should
  2097. be redirected to the NIL: device.
  2098.  
  2099.    For example:
  2100.  
  2101.      address command 'rename ram:foo ram:bar'
  2102.  
  2103.    could crash the machine if the rename fails (e.g. the file "ram:foo"
  2104. doesn't exist). To avoid this, use:
  2105.  
  2106.      address command 'rename <NIL: >NIL: ram:foo ram:bar'
  2107.  
  2108.    The failure will still be trapped by ARexx and sets RC to 10.
  2109.  
  2110. ARexx problem 3
  2111. ---------------
  2112.  
  2113.      "I can't run scripts from the ram disk."
  2114.  
  2115.    This is due to ARexx scripts being treated by ARexx as external
  2116. commands. Command names may not contain spaces, and scripts in the ram
  2117. disk will be called something like `Ram Disk:MyScript.isrx', which is
  2118. not allowed.
  2119.  
  2120.    To work around this, either move the script to a location without a
  2121. space in its filename or specify the ram disk as `ram:' rather than
  2122. `Ram Disk:'.
  2123.  
  2124. ARexx problem 4
  2125. ---------------
  2126.  
  2127.      "I can't set the same variable twice with VAR"
  2128.  
  2129.    If you are able to return a value from a command into a given
  2130. variable name once in a program, but unable to do it again it's probably
  2131. due to ARexx evaluating your variable the second time it is used.
  2132.  
  2133.    For example, the following won't work:
  2134.  
  2135.      FILE_JOIN FILEPART '"Work:"' '"MyFile"' VAR fullname
  2136.      
  2137.      FILE_JOIN FILEPART '"Work:"' '"MyOtherFile"' VAR fullname
  2138.  
  2139.    because ARexx will evaluate `fullname' in the second FILE_JOIN, i.e.
  2140. ARexx will see the second FILE_JOIN as:
  2141.  
  2142.      FILE_JOIN FILEPART "Work:" "MyFile" VAR Work:MyFile
  2143.  
  2144.    The solution is to enclose the variable name in single quotes to
  2145. stop it from being evaluated, i.e. our second FILE_JOIN is written as:
  2146.  
  2147.      FILE_JOIN FILEPART '"Work:"' '"MyOtherFile"' VAR 'fullname'
  2148.  
  2149. ARexx problem 5
  2150. ---------------
  2151.  
  2152.      "I can't get any ARexx script to run."
  2153.  
  2154.    In order for ARexx to be available to ImageStudio, you must start
  2155. ARexx at startup time by including the line:
  2156.  
  2157.      rexxmast >NIL:
  2158.  
  2159.    in your `User-Startup' file in the `S:' directory. Normally this
  2160. line should be present in your User-Startup, but if you find no scripts
  2161. run from ImageStudio you must add this line manually.
  2162.  
  2163. ARexx tips
  2164. ==========
  2165.  
  2166. ARexx tip 1
  2167. -----------
  2168.  
  2169.      "How to turn stem arrays into strings."
  2170.  
  2171.    It usually desirable for commands that return arrays to return the
  2172. values in a stem, making the return values easier to deal with. In some
  2173. cases it is neccessary to pass these values back to ImageStudio after
  2174. reading or altering them. As ImageStudio commands can't accept stems
  2175. directly, these stems have to be converted back into strings.
  2176.  
  2177.    We suggest the following method, using the PALETTE_GET and
  2178. PALETTE_SET commands as examples of getting and setting an array of
  2179. values:
  2180.  
  2181.      /* Get the current palette */
  2182.      
  2183.      PALETTE_GET STEM OLDPALETTE.
  2184.      
  2185.      /* Convert the stem to a parameter list */
  2186.      
  2187.      NEWPALETTE = ''
  2188.      
  2189.      do l = 0 to (OLDPALETTE.PALETTE.COUNT - 1)
  2190.         NEWPALETTE = NEWPALETTE||' '||OLDPALETTE.PALETTE.l
  2191.         end
  2192.      
  2193.      /* Force the new palette back onto the image */
  2194.      
  2195.      PALETTE_SET PALETTE NEWPALETTE REMAP
  2196.  
  2197. ARexx tip 2
  2198. -----------
  2199.  
  2200.      "Shortening command names"
  2201.  
  2202.    Using the current ARexx command interpreter within ImageStudio, it
  2203. is possible to specify a shorter version of each ARexx command. For
  2204. example, `OP' could be used as a synonym for `OPEN' and `RG' is a
  2205. synonym for `RGB_TO_HSV'. The following should be noted however:
  2206.  
  2207.    * This behaviour may be removed in a future version of ImageStudio.
  2208.      Therefore we recommend that this feature only be used to reduce
  2209.      typing in the command shell (see Command_shell) and not be used in
  2210.      ARexx scripts.
  2211.  
  2212.    * If the shortened command name is ambiguous, the first matching com
  2213.      mand will be executed. For example, if the shortened command
  2214.      `REQUEST' is used, `REQUEST_DIR' will be executed.
  2215.  
  2216. Example scripts
  2217. ===============
  2218.  
  2219. BalanceTest
  2220. -----------
  2221.  
  2222. Description
  2223.      This script allows the user to see the result of changing the
  2224.      brightness, contrast and gamma values over their full ranges.
  2225.  
  2226.      An image is loaded in if one is not present already. The image is
  2227.      then divided into 3 strips - the top, middle and bottom
  2228.      representing changes to the balance, contrast and gamma
  2229.      respectively. Depending on the number of divisions the user
  2230.      chooses, each of the 3 strips is divided further horizontally and
  2231.      each of the brightness, contrast and  gamma values are applied
  2232.      starting from -100 on the left to +100 on the right. An odd number
  2233.      of horizontal divisions are used to leave a central, vertical area
  2234.      of the image which remains unchanged.
  2235.  
  2236. Known bugs
  2237.      None.
  2238.  
  2239. BatchConvert
  2240. ------------
  2241.  
  2242. Description
  2243.      This scripts allows the conversion of multiple images to be output
  2244.      as one image format.
  2245.  
  2246.      The script allows the following:
  2247.  
  2248.        1. Saving of the converted image into a different location as the
  2249.           source.
  2250.  
  2251.        2. Choose any of the available image formats to save, with
  2252.           controls over their subformat.
  2253.  
  2254.        3. Automatic file renaming.
  2255.  
  2256.        4. Automatic deleting of source images if different from the
  2257.           destination image.
  2258.  
  2259. Known bugs
  2260.      If the source and destination files are the same, but have
  2261.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2262.      script will delete the source file (which will be the destination
  2263.      file). To avoid this, make sure both filenames are both specified
  2264.      in the same manner.
  2265.  
  2266. BatchProcess
  2267. ------------
  2268.  
  2269. Description
  2270.      This scripts allows the processing of multiple images to be output
  2271.      as one image format. The script is based on `BatchConvert' (see
  2272.      BatchConvert).
  2273.  
  2274.      The commands to control the processing should be typed in to the
  2275.      appropriate requester as though they were ARexx commands to be
  2276.      executed in a script. For example:
  2277.  
  2278.           SCALE 640 480
  2279.  
  2280.      would scale each image to 640x480 pixels before saving out.
  2281.      Multiple commands can be separated with a semi-colon `;', for
  2282.      example:
  2283.  
  2284.           SCALE 800 600;COLOURS 256 DITHER FS
  2285.  
  2286.      would scale the image to 800x600 and then reduce to 256 colours
  2287.      with Floyd-Steinberg dithering before saving out. Commands are
  2288.      executed from left to right.
  2289.  
  2290.      The script allows the following:
  2291.  
  2292.        1. Saving of the processed image into a different location as the
  2293.           source.
  2294.  
  2295.        2. Choose any of the available image formats to save, with
  2296.           controls over their subformat.
  2297.  
  2298.        3. Automatic file renaming.
  2299.  
  2300.        4. Application of multiple commands to process the image before
  2301.           saving.
  2302.  
  2303.        5. Automatic deleting of source images if different from the
  2304.           destination image.
  2305.  
  2306. Known bugs
  2307.      If the source and destination files are the same, but have
  2308.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2309.      script will delete the source file (which will be the destination
  2310.      file). To avoid this, make sure both filenames are both specified
  2311.      in the same manner.
  2312.  
  2313. BatchProcessNotify
  2314. ------------------
  2315.  
  2316. Description
  2317.      This script starts a batch lot of processing to be performed when a
  2318.      given file is changed or created; the script is based on
  2319.      `BatchConvert' (see BatchProcess).
  2320.  
  2321.      This is useful if you wish to convert the output from a program
  2322.      that has generated multiple frames (e.g. a raytracer or landscape
  2323.      renderer) into a format that can be compiled into an animation
  2324.      (e.g.  ILBM24 to HAM6).
  2325.  
  2326.      The first thing the user must select is the filename of the final
  2327.      file in the sequence. When this file has been created, ImageStudio
  2328.      will start the processing of the images. This file may not of
  2329.      course have been created yet, so the user will have to type the
  2330.      name into the file requester.
  2331.  
  2332.      After the user has specified the output format (see BatchProcess),
  2333.      the script will wait for the specified file be created before
  2334.      proceeding with the processing on all the files in the chosen
  2335.      directory with the same basename as the selected final filename.
  2336.  
  2337. Known bugs
  2338.      If the source and destination files are the same, but have
  2339.      different filenames (e.g. `T:Bud2.gif' and `Ram:T/Bud2.gif') the
  2340.      script will delete the source file (which will be the destination
  2341.      file). To avoid this, make sure both filenames are both specified
  2342.      in the same manner.
  2343.  
  2344. Example
  2345.      The user wishes to convert the 24bit output files created by a
  2346.      raytracer into HAM6 format, ready for compiling into an animation.
  2347.      The animation is 200 frames and the files are numbered `pic.0001',
  2348.      `pic.0002' etc... and are located in the `Work:Render' direc tory.
  2349.      No extra processing is to be performed on the images.
  2350.  
  2351.      Upon running the BatchProcessNotify script, the user enters
  2352.      `Work:Render/pic.0200' as the final frame in the sequence and sets
  2353.      the output file format to be IFF-ILBM, HAM6.
  2354.  
  2355.      The script now waits for the final file to be created, and upon do
  2356.      ing so, matches all files in the `Work:Render' directory that start
  2357.      with the basename `pic.'. 200 files should be found. Each of these
  2358.      files are loaded and saved as HAM6, before the script ends.
  2359.  
  2360. ConvolveTest
  2361. ------------
  2362.  
  2363. Description
  2364.      Applies a chosen set of convolution filters to an image.
  2365.  
  2366.      A number of convolution filters are chosen and the image is tiled
  2367.      depending on the number of filters chosen, each filter is applied
  2368.      to each of the tiles.
  2369.  
  2370. Known bugs
  2371.        1. The convolution filters chosen to apply *must* be taken from
  2372.           the directory currently shown in the `Convolves' floating
  2373.           palette.  This is because convolution filters with the
  2374.           CONVOLVE command are chosen by name, not filename (see
  2375.           ARexx_CONVOLVE).
  2376.  
  2377.        2. The tiling algorithm used isn't very smart, the number of
  2378.           tiles vertically is the same as the number horizontally. This
  2379.           can lead to almost half of the image being unaffected if the
  2380.           number of chosen filters is just above the nearest square
  2381.           number.
  2382.  
  2383.        3. The maximum number of filters to be applied to the image is
  2384.           100.
  2385.  
  2386. Crop512x512
  2387. -----------
  2388.  
  2389. Description
  2390.      Removes blank area from unregistered images.
  2391.  
  2392.      When a large image in loaded into the unregistered version of
  2393.      ImageStudio, the actual image is only contained in the top-left
  2394.      512x512 pixels of the buffer. This script crops away the blank
  2395.      buffer to leave a buffer of only 512x512 pixels in size.
  2396.  
  2397. Known bugs
  2398.      None.
  2399.  
  2400. Demo
  2401. ----
  2402.  
  2403. Description
  2404.      Demonstrates some of the features of the ImageStudio ARexx inter
  2405.      face.
  2406.  
  2407.      Simply follow the prompts to see the features being explained.
  2408.  
  2409. Known bugs
  2410.      None.
  2411.  
  2412. RegionRecall
  2413. ------------
  2414.  
  2415. Description
  2416.      Sets a previously remembered region.
  2417.  
  2418.      This script allows the region that was set with RegionStore (see
  2419.      RegionStore) to be recalled as the active region for the current
  2420.      image. The user is warned if there is already a currently selected
  2421.      region which will be lost if the remembered region is recalled.
  2422.  
  2423. Known bugs
  2424.      None.
  2425.  
  2426. RegionStore
  2427. -----------
  2428.  
  2429. Description
  2430.      Remembers a region for future recall.
  2431.  
  2432.      The region maybe recalled by using the RegionRecall (see
  2433.      RegionRecall) script.
  2434.  
  2435. Known bugs
  2436.      None.
  2437.  
  2438. ToIcon
  2439. ------
  2440.  
  2441. Description
  2442.      Resizes and remaps the image to that suitable as an icon.
  2443.  
  2444.      The script allows the following:
  2445.  
  2446.        1. Choosing of an alternative palette other than the default 4
  2447.           colour Workbench palette.
  2448.  
  2449.        2. Copying of the image into the clipboard, ready to be pasted
  2450.           into IconEdit.
  2451.  
  2452. Known bugs
  2453.      None.
  2454.  
  2455. ARexx commands
  2456. ==============
  2457.  
  2458.    More detailed information on each of the individual ARexx commands
  2459. can be found below.
  2460.  
  2461. BALANCE
  2462. -------
  2463.  
  2464. Command
  2465.      BALANCE
  2466.  
  2467. Parameters template
  2468.      BRIGHTNESS/N, CONTRAST/N, GAMMA/N, NORED/S, NOGREEN/S,
  2469.      NOBLUE/S
  2470.  
  2471. Return template
  2472.      None.
  2473.  
  2474. Description
  2475.      This command allows the user to change the colour balance of the im
  2476.      age.  The user may select specify one of the BRIGHTNESS, CONTRAST
  2477.      or GAMMA values to adjust - specifying more than one will only
  2478.      result in the first operation being acted upon.
  2479.  
  2480.      By default, the operation is applied to all the red, green and blue
  2481.      values of the image. The user may stop any of the RGB channels
  2482.      being affected by selecting any of the NORED, NOGREEN or NOBLUE
  2483.      switches.  Multiple switches may be used, but not all three
  2484.      together.
  2485.  
  2486.      See Show_balance, for a full description of altering the image's
  2487.      colour balance.
  2488.  
  2489. Parameters
  2490.     BRIGHTNESS
  2491.           This adjusts the brightness / darkness of the image. Valid
  2492.           values are between -100 (make everything black) to 100 (make
  2493.           everything twice as bright).
  2494.  
  2495.     CONTRAST
  2496.           This adjusts the relative difference between dark and light
  2497.           colours.  Valid values are -100 (everything to mid-grey) to
  2498.           100 (everything to extreme contrast).
  2499.  
  2500.     GAMMA
  2501.           This adjusts the gamma response of the image. Valid values
  2502.           are -100 to 100.
  2503.  
  2504. Returns
  2505.      Nothing.
  2506.  
  2507. Errors
  2508.      rc = 0 if the operation was successful.
  2509.  
  2510.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2511.      string describing the problem.
  2512.  
  2513. Example
  2514.      The following adjusts the gamma of the image by 10:
  2515.  
  2516.           BALANCE GAMMA 10
  2517.  
  2518.      The following darkens the green componant of the image by -20:
  2519.  
  2520.           BALANCE BRIGHTNESS -20 NORED NOBLUE
  2521.  
  2522. Known bugs
  2523.      None.
  2524.  
  2525. COLOURS
  2526. -------
  2527.  
  2528. Command
  2529.      COLOURS
  2530.  
  2531. Parameters template
  2532.      NUMCOLOURS/N, SIXTEENMILLION/S, COLOURCHOICE, DITHER
  2533.  
  2534. Return template
  2535.      None.
  2536.  
  2537. Description
  2538.      Allows the user to change the number of colours of the current im
  2539.      age. The image can be changed to either 2-256 colours or 16 million
  2540.      colours (24bit). Methods of colour choice and dithering are
  2541.      available when reducing the number of colours in the image.
  2542.  
  2543.      See Colours, for a full description of changing the number of
  2544.      colours in the image.
  2545.  
  2546. Parameters
  2547.     NUMCOLOURS/N
  2548.           The number of colours desired for the image. Valid values are
  2549.           2 to 256, the result will always be a colour-mapped image.
  2550.  
  2551.     SIXTEENMILLION/S
  2552.           In order to increase the number of possible colours in the
  2553.           image to the maximum possible (16 million), the user should
  2554.           specify this switch. The user may not specify this switch as
  2555.           well as the NUMCOL OURS option.
  2556.  
  2557.     COLOURCHOICE
  2558.           This is a string which determines which method of colour
  2559.           choice should be used to reduce the number of colours in an
  2560.           image. At the present time, HECKBERT is the only available
  2561.           option and will be used by default if no COLOURCHOICE is
  2562.           specified.
  2563.  
  2564.     DITHER
  2565.           This string determines which method of dithering should be
  2566.           used when reducing the number of colours in an image. Valid
  2567.           strings are: NONE, FLOYD-STEINBERG or FS, STUCKI, JARVIS,
  2568.           BURKES, SIERRA and STEVEN SON-ARCE. By default, no dithering
  2569.           is used.
  2570.  
  2571. Returns
  2572.      Nothing.
  2573.  
  2574. Errors
  2575.      rc = 0 if the operation was successful.
  2576.  
  2577.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2578.      string describing the problem.
  2579.  
  2580. Example
  2581.      The following reduces the image to 16 colours with Floyd-Steinberg
  2582.      dithering:
  2583.  
  2584.           COLOURS NUMCOLOURS 16 DITHER "FS"
  2585.  
  2586.      The following increases the image to 24bits, allowing 16 million
  2587.      possible colours:
  2588.  
  2589.           COLOURS SIXTEENMILLION
  2590.  
  2591. Known bugs
  2592.      None.
  2593.  
  2594. CONVOLVE
  2595. --------
  2596.  
  2597. Command
  2598.      CONVOLVE
  2599.  
  2600. Parameters template
  2601.      NAME/A
  2602.  
  2603. Return template
  2604.      None.
  2605.  
  2606. Description
  2607.      Applies the named convolution to the 24bit image. Convolution can
  2608.      only be applied to 16 million colour (24bit) images.
  2609.  
  2610.      See Show_convolves, for a full description of convolution filters.
  2611.  
  2612. Parameters
  2613.     NAME/A
  2614.           The name of the convolution filter as it appears in the "Show
  2615.           convolves" floating palette.
  2616.  
  2617. Returns
  2618.      Nothing.
  2619.  
  2620. Errors
  2621.      rc = 0 if the operation was successful.
  2622.  
  2623.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2624.      string describing the problem.
  2625.  
  2626. Example
  2627.      The following applies the "Blur high" convolution filter to the
  2628.      current image:
  2629.  
  2630.           CONVOLVE NAME '"Blur high"'
  2631.  
  2632.      The following increases the image to 24bits if necessary, then
  2633.      applies the "Edge detect" convolution filter:
  2634.  
  2635.           IMAGEINFO_GET STEM IMAGEINFO.
  2636.           
  2637.           if IMAGEINFO.DEPTH ~= 24 then do
  2638.              COLOURS SIXTEENMILLION
  2639.              end
  2640.           
  2641.           CONVOLVE NAME '"Edge detect"'
  2642.  
  2643. Known bugs
  2644.      None.
  2645.  
  2646. COPY
  2647. ----
  2648.  
  2649. Command
  2650.      COPY
  2651.  
  2652. Parameters template
  2653.      None.
  2654.  
  2655. Return template
  2656.      None.
  2657.  
  2658. Description
  2659.      Copies the current image into the clipboard buffer.
  2660.  
  2661.      See Copy, for a full description of copying images to the clip
  2662.      board.
  2663.  
  2664. Parameters
  2665.      None.
  2666.  
  2667. Returns
  2668.      Nothing.
  2669.  
  2670. Errors
  2671.      rc = 0 if the operation was successful.
  2672.  
  2673.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2674.      string describing the problem.
  2675.  
  2676. Example
  2677.      The following copies the current image to the clipboard:
  2678.  
  2679.           COPY
  2680.  
  2681. Known bugs
  2682.      None.
  2683.  
  2684. CROP
  2685. ----
  2686.  
  2687. Command
  2688.      CROP
  2689.  
  2690. Parameters template
  2691.      None.
  2692.  
  2693. Return template
  2694.      None.
  2695.  
  2696. Description
  2697.      Crops the image to the currently selected region. A region must be
  2698.      selected for this command to work.
  2699.  
  2700.      See Crop, for a full description of cropping images.
  2701.  
  2702. Parameters
  2703.      None.
  2704.  
  2705. Returns
  2706.      Nothing.
  2707.  
  2708. Errors
  2709.      rc = 0 if the operation was successful.
  2710.  
  2711.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2712.      string describing the problem.
  2713.  
  2714. Example
  2715.      The following crops the current image to the currently selected
  2716.      region:
  2717.  
  2718.           CROP
  2719.  
  2720.      The following crops the current image to the currently selected
  2721.      region only if a region exists:
  2722.  
  2723.           REGION_GET STEM REGIONINFO.
  2724.           
  2725.           if REGIONINFO.MINX ~= -1 then do
  2726.              CROP
  2727.              end
  2728.  
  2729. Known bugs
  2730.      None.
  2731.  
  2732. EFFECT
  2733. ------
  2734.  
  2735. Command
  2736.      EFFECT
  2737.  
  2738. Parameters template
  2739.      NAME/A, ARGS
  2740.  
  2741. Return template
  2742.      None.
  2743.  
  2744. Description
  2745.      Applies the named effect to the image. Optional arguments that the
  2746.      effect may require can be passed via the ARGS parameter.
  2747.  
  2748.      See Effects, for a full description of the available effects.
  2749.  
  2750. Parameters
  2751.     NAME/A
  2752.           The name of the effect to apply, as it appears in the
  2753.           "Effects" floating palette.
  2754.  
  2755.     ARGS
  2756.           Any optional arguments that the desired effect may require.
  2757.  
  2758. Returns
  2759.      Nothing.
  2760.  
  2761. Errors
  2762.      rc = 0 if the operation was successful.
  2763.  
  2764.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2765.      string describing the problem.
  2766.  
  2767. Example
  2768.      The following applies the "Negative" effect to the image:
  2769.  
  2770.           EFFECT NAME "Negative"
  2771.  
  2772.      The following pixelizes the image to a size of 4 pixels:
  2773.  
  2774.           EFFECT NAME "Pixelize" ARGS '"PIXELSIZE 4"'
  2775.  
  2776. Known bugs
  2777.      None.
  2778.  
  2779. FILES_MATCH
  2780. -----------
  2781.  
  2782. Command
  2783.      FILES_MATCH
  2784.  
  2785. Parameters template
  2786.      PATHPART/A, PATTERN
  2787.  
  2788. Return template
  2789.      FILEPARTS/M
  2790.  
  2791. Description
  2792.      Returns a list of files in a directory matching an optional
  2793.      pattern.
  2794.  
  2795. Parameters
  2796.     PATHPART/A
  2797.           The path (directory) name from which the filenames should be
  2798.           taken.
  2799.  
  2800.     PATTERN
  2801.           Optional file matching pattern, to allow the inclusion of
  2802.           only spe cific filenames. By default, all the files in a
  2803.           directory are returned.
  2804.  
  2805. Returns
  2806.     FILEPARTS/M
  2807.           An array of strings containing the matching filenames in the
  2808.           given PATH.
  2809.  
  2810. Errors
  2811.      rc = 0 if the operation was successful.
  2812.  
  2813.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2814.      string describing the problem.
  2815.  
  2816. Example
  2817.      The following gets all the filenames from the "Pics" directory and
  2818.      returns them in the stem FILENAMES.:
  2819.  
  2820.           FILES_MATCH PATHPART "Pics" STEM FILENAMES.
  2821.  
  2822.      The following gets all the filenames in the current directory with
  2823.      a ".ilbm" or ".iff" filename extension:
  2824.  
  2825.           FILES_MATCH PATHPART '""' PATTERN "#?.(ilbm|iff)" STEM FILENAMES.
  2826.  
  2827.      The following gets all the filenames in the "S:" directory that
  2828.      start with an "S" and puts them in pop up requesters:
  2829.  
  2830.           FILES_MATCH PATHPART "S:" PATTERN "S#?" STEM FILENAMES.
  2831.           
  2832.           do l = 0 to (FILENAMES.FILEPARTS.COUNT - 1)
  2833.              REQUEST_MESSAGE BUTTONTEXT "More|Cancel" AUTOCANCEL,
  2834.                 TEXT '"'FILENAMES.FILEPARTS.l'"'
  2835.              end
  2836.  
  2837. Known bugs
  2838.      None.
  2839.  
  2840. FILE_JOIN
  2841. ---------
  2842.  
  2843. Command
  2844.      FILE_JOIN
  2845.  
  2846. Parameters template
  2847.      PATHPART/A, FILEPART/A
  2848.  
  2849. Return template
  2850.      FILE
  2851.  
  2852. Description
  2853.      Joins the path part of a filename to the file part of a filename,
  2854.      returning the full filename. Adds `/' and `:' where appropriate to
  2855.      create a full filename.
  2856.  
  2857. Parameters
  2858.     PATHPART/A
  2859.           The path (directory) part of the filename to be created.
  2860.  
  2861.     FILEPART/A
  2862.           The file part of the filename to be created.
  2863.  
  2864. Returns
  2865.     FILE
  2866.           The full filename created from the path and file parts.
  2867.  
  2868. Errors
  2869.      rc = 0 if the operation was successful.
  2870.  
  2871.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2872.      string describing the problem.
  2873.  
  2874. Example
  2875.      The following creates the filename "Pics/HappyFace_240x250.bmp"
  2876.      from the seperate path and fileparts - the result is put in a pop
  2877.      up requester:
  2878.  
  2879.           FILE_JOIN PATHPART "Pics" FILEPART "HappyFace_240x250.bmp"
  2880.           
  2881.           REQUEST_MESSAGE TEXT '"'RESULT'"'
  2882.  
  2883.      The following creates the filename "T:TempImage.jpg" from the
  2884.      seperate path and fileparts (note how the '/' seperater is not
  2885.      needed) - the result is put in a pop up requester:
  2886.  
  2887.           FILE_JOIN PATHPART "T:" FILEPART "TempImage.jpg"
  2888.           
  2889.           REQUEST_MESSAGE TEXT '"'RESULT'"'
  2890.  
  2891. Known bugs
  2892.      None.
  2893.  
  2894. FILE_RENAME
  2895. -----------
  2896.  
  2897. Command
  2898.      FILE_RENAME
  2899.  
  2900. Parameters template
  2901.      FILE/A, FROM/A, TO/A
  2902.  
  2903. Return template
  2904.      FILE
  2905.  
  2906. Description
  2907.      Replaces the last occurrance of a given string in a filename with
  2908.      another string. Useful for renaming filename extensions.
  2909.  
  2910.      Note: *This command doesn't actually rename the file*, it simply
  2911.      returns what the new filename should be.
  2912.  
  2913.      Hint: To rename *any* filename extension to a chosen extension,
  2914.      you can set "FROM ." and "TO .newextension". This removes any old
  2915.      extension and replaces it with the given new extension. This can be
  2916.      useful if you are converting a large number of different format
  2917.      files to one format (see BatchConvert).
  2918.  
  2919. Parameters
  2920.     FILE/A
  2921.           The original filename to be renamed.
  2922.  
  2923.     FROM/A
  2924.           The string to remove from the old filename.
  2925.  
  2926.     TO/A
  2927.           The string to replace the FROM string in the filename.
  2928.  
  2929. Returns
  2930.     FILE
  2931.           The renamed filename. If no FROM string was found in the
  2932.           original filename, the original filename is returned with the
  2933.           new TO string appended.
  2934.  
  2935. Errors
  2936.      rc = 0 if the operation was successful.
  2937.  
  2938.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2939.      string describing the problem.
  2940.  
  2941. Example
  2942.      The following renames the filename "Zebra_250x250.pcx" to
  2943.      "Zebra_250x250.ilbm", the final filename is placed in RESULT:
  2944.  
  2945.           FILE_RENAME FILE "Zebra_250x250.pcx" FROM ".pcx" TO ".ilbm"
  2946.  
  2947.      The following appends ".out" to the filename "pic.0001":
  2948.  
  2949.           FILE_RENAME FILE "pic.0001" FROM "XXX" TO ".out"
  2950.  
  2951. Known bugs
  2952.      None.
  2953.  
  2954. FILE_SPLIT
  2955. ----------
  2956.  
  2957. Command
  2958.      FILE_SPLIT
  2959.  
  2960. Parameters template
  2961.      FILE/A
  2962.  
  2963. Return template
  2964.      PATHPART, FILEPART
  2965.  
  2966. Description
  2967.      Splits the given filename into seperate path and file parts.
  2968.  
  2969. Parameters
  2970.     FILE/A
  2971.           The full filename to be split.
  2972.  
  2973. Returns
  2974.     PATHPART
  2975.           The path (directory) part of the filename.
  2976.  
  2977.     FILEPART
  2978.           The file part of the filename.
  2979.  
  2980. Errors
  2981.      rc = 0 if the operation was successful.
  2982.  
  2983.      rc = 10 if the operation failed for any reason, rc2 will contain a
  2984.      string describing the problem.
  2985.  
  2986. Example
  2987.      The following seperates the filename "Pics/HappyFace_240x250.bmp"
  2988.      into seperate path and fileparts - the result is put in a pop up
  2989.      requester:
  2990.  
  2991.           FILE_SPLIT FILE "Pics/HappyFace_240x250.bmp" STEM FILENAME.
  2992.           
  2993.           REQUEST_MESSAGE TEXT '"Path:'FILENAME.PATHPART,
  2994.              'File:'FILENAME.FILEPART'"'
  2995.  
  2996.      The following seperates the filename "T:TempImage.jpg" into
  2997.      seperate path and fileparts - the result is put into the default
  2998.      settings of a file requester:
  2999.  
  3000.           FILE_SPLIT FILE "T:TempImage.jpg" STEM FILENAME.
  3001.           
  3002.           REQUEST_FILE PATHPART '"'FILENAME.PATHPART'"',
  3003.              FILE '"'FILENAME.PATHPART'"'
  3004.  
  3005. Known bugs
  3006.      None.
  3007.  
  3008. FULL_IMAGE
  3009. ----------
  3010.  
  3011. Command
  3012.      FULL_IMAGE
  3013.  
  3014. Parameters template
  3015.      None.
  3016.  
  3017. Return template
  3018.      None.
  3019.  
  3020. Description
  3021.      Displays the full image in the preview window.
  3022.  
  3023.      See Full_image, for a full description of this command.
  3024.  
  3025. Parameters
  3026.      None.
  3027.  
  3028. Returns
  3029.      Nothing.
  3030.  
  3031. Errors
  3032.      rc = 0 if the operation was successful.
  3033.  
  3034.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3035.      string describing the problem.
  3036.  
  3037. Example
  3038.      The following displays the full image in the preview window:
  3039.  
  3040.           FULL_IMAGE
  3041.  
  3042. Known bugs
  3043.      None.
  3044.  
  3045. GUI_BLOCK
  3046. ---------
  3047.  
  3048. Command
  3049.      GUI_BLOCK
  3050.  
  3051. Parameters template
  3052.      None.
  3053.  
  3054. Return template
  3055.      None.
  3056.  
  3057. Description
  3058.      Blocks all input to any open ImageStudio windows. This command is
  3059.      used to stop the user from entering any more input into the
  3060.      ImageStudio windows whilst an ARexx script is running. If the
  3061.      script has been started from ImageStudio (i.e. from the "Scripts"
  3062.      floating palette), all the GUI blocking / unblocking is handled
  3063.      automatically - the GUI is blocked when the script starts and
  3064.      unblocked when it finishes.
  3065.  
  3066.      If the script is started externally (i.e. from another ARexx
  3067.      program or from the CLI using `rx'), the user should block the GUI
  3068.      if they think the ARexx is going to spend a long time processing
  3069.      some in formation. The GUI is still automatically blocked when a
  3070.      requester is opened however.
  3071.  
  3072. Parameters
  3073.      None.
  3074.  
  3075. Returns
  3076.      Nothing.
  3077.  
  3078. Errors
  3079.      rc = 0 if the operation was successful.
  3080.  
  3081.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3082.      string describing the problem.
  3083.  
  3084. Example
  3085.      The following blocks all input to the ImageStudio GUI:
  3086.  
  3087.           GUI_BLOCK
  3088.  
  3089. Known bugs
  3090.      None.
  3091.  
  3092. GUI_UNBLOCK
  3093. -----------
  3094.  
  3095. Command
  3096.      GUI_UNBLOCK
  3097.  
  3098. Parameters template
  3099.      None.
  3100.  
  3101. Return template
  3102.      None.
  3103.  
  3104. Description
  3105.      Unblocks all input to any open ImageStudio windows after a
  3106.      GUI_BLOCK command. If the script has been started from ImageStudio
  3107.      (i.e. from the "Scripts" floating palette), all the GUI blocking /
  3108.      unblocking is handled automatically - the GUI is blocked when the
  3109.      script starts and unblocked when it finishes.
  3110.  
  3111.      If the scripts is started externally (i.e. from another ARexx pro
  3112.      gram or from the CLI using `rx'), the user should unblock the GUI
  3113.      after a GUI_BLOCK command has been issued. The GUI is still
  3114.      automatically unblocked after a requester has been satisfied
  3115.      however.
  3116.  
  3117. Parameters
  3118.      None.
  3119.  
  3120. Returns
  3121.      Nothing.
  3122.  
  3123. Errors
  3124.      rc = 0 if the operation was successful.
  3125.  
  3126.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3127.      string describing the problem.
  3128.  
  3129. Example
  3130.      The following unblocks all input to the ImageStudio GUI:
  3131.  
  3132.           GUI_UNBLOCK
  3133.  
  3134. Known bugs
  3135.      None.
  3136.  
  3137. HELP
  3138. ----
  3139.  
  3140. Command
  3141.      HELP
  3142.  
  3143. Parameters template
  3144.      COMMAND
  3145.  
  3146. Return template
  3147.      COMMANDDESC, COMMANDLIST/M
  3148.  
  3149. Description
  3150.      Returns help on a given ARexx command. This command is meant mainly
  3151.      for use with the command shell (see Command_shell), as it is of
  3152.      very little use within a script. Both the command's parameter and
  3153.      return templates are returned.
  3154.  
  3155. Parameters
  3156.     COMMAND
  3157.           The ARexx command to obtain help on.
  3158.  
  3159. Returns
  3160.     COMMANDDESC
  3161.           The parameter template.
  3162.  
  3163.     COMMANDLIST/M
  3164.           The result template.
  3165.  
  3166. Errors
  3167.      rc = 0 if the operation was successful.
  3168.  
  3169.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3170.      string describing the problem.
  3171.  
  3172. Example
  3173.      The following gets help on the ARexx OPEN command:
  3174.  
  3175.           HELP OPEN
  3176.  
  3177.      The following gets help on the HELP command:
  3178.  
  3179.           HELP HELP
  3180.  
  3181. Known bugs
  3182.      None.
  3183.  
  3184. HSV_TO_RGB
  3185. ----------
  3186.  
  3187. Command
  3188.      HSV_TO_RGB
  3189.  
  3190. Parameters template
  3191.      H/N/A, S/N/A, V/N/A
  3192.  
  3193. Return template
  3194.      R/N, G/N, B/N
  3195.  
  3196. Description
  3197.      Converts a HSV colour value into a RGB colour value.
  3198.  
  3199.      See Colour representations, for more details on RGB and HSV colour
  3200.      representations.
  3201.  
  3202. Parameters
  3203.     H/N/A
  3204.           The hue value of the colour to convert. Valid values are 0 to
  3205.           360.
  3206.  
  3207.     S/N/A
  3208.           The saturation value of the colour to convert. Valid values
  3209.           are 0 to 100.
  3210.  
  3211.     V/N/A
  3212.           The value of the colour to convert. Valid values are 0 to 100.
  3213.  
  3214. Returns
  3215.     R/N
  3216.           The red componant value of the colour.
  3217.  
  3218.     G/N
  3219.           The green componant value of the colour.
  3220.  
  3221.     B/N
  3222.           The blue componant value of the colour.
  3223.  
  3224. Errors
  3225.      rc = 0 if the operation was successful.
  3226.  
  3227.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3228.      string describing the problem.
  3229.  
  3230. Example
  3231.      The following converts yellow from HSV to RGB representation,
  3232.      putting the result in RESULT:
  3233.  
  3234.           HSV_TO_RGB 60 100 100
  3235.  
  3236.      The following converts mid-grey from HSV to RGB representation,
  3237.      putting the result in the stem COLOUR.:
  3238.  
  3239.           HSV_TO_RGB 0 0 49 STEM COLOUR.
  3240.  
  3241. Known bugs
  3242.      None.
  3243.  
  3244. IMAGEINFO_GET
  3245. -------------
  3246.  
  3247. Command
  3248.      IMAGEINFO_GET
  3249.  
  3250. Parameters template
  3251.      None.
  3252.  
  3253. Return template
  3254.      WIDTH/N, HEIGHT/N, DEPTH/N, FILE, MODEID/N, CHANGED/N
  3255.  
  3256. Description
  3257.      Returns information about the current image. If no image is
  3258.      currently loaded, -1 is returned in all the numeric fields.
  3259.  
  3260. Parameters
  3261.      None.
  3262.  
  3263. Returns
  3264.     WIDTH/N
  3265.           The width of the image in pixels, -1 if no image is loaded.
  3266.  
  3267.     HEIGHT/N
  3268.           The height of the image in pixels, -1 if no image is loaded.
  3269.  
  3270.     DEPTH/N
  3271.           The colour depth of the image, -1 if no image is loaded.
  3272.           Returns 1 to 8 for 2 to 256 colour images, 24 for 16 million
  3273.           colour images.
  3274.  
  3275.     FILE
  3276.           The full filename of the current image.
  3277.  
  3278.     MODEID/N
  3279.           The current screenmode of the image. This number is not meant
  3280.           to be interpreted directly, but can be used to be passed to
  3281.           the screenmode requester (see ARexx_REQUEST_SCREENMODE).
  3282.           When the image loaded is a non IFF-ILBM image, this
  3283.           screenmode value is "guessed" at by ImageStudio to be the
  3284.           closest Amiga equivalent based on the image's dimensions.
  3285.  
  3286.     CHANGED/N
  3287.           A numeric value, taking the value 1 to represent a change in
  3288.           the current project or 0 for no change.
  3289.  
  3290. Errors
  3291.      rc = 0 if the operation was successful.
  3292.  
  3293.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3294.      string describing the problem.
  3295.  
  3296. Example
  3297.      The following gets the current image's information and returns it
  3298.      in the stem IMAGE.:
  3299.  
  3300.           IMAGEINFO_GET STEM IMAGE.
  3301.  
  3302.      The following gets the current image's info and opens a screenmode
  3303.      requester with the current screenmode if an image is loaded:
  3304.  
  3305.           IMAGEINFO_GET STEM IMAGE.
  3306.           
  3307.           if IMAGE.WIDTH ~= -1 then do
  3308.              REQUEST_SCREENMODE MODEID IMAGE.MODEID
  3309.              end
  3310.  
  3311. Known bugs
  3312.      None.
  3313.  
  3314. IMAGEINFO_SET
  3315. -------------
  3316.  
  3317. Command
  3318.      IMAGEINFO_SET
  3319.  
  3320. Parameters template
  3321.      MODEID/N
  3322.  
  3323. Return template
  3324.      None.
  3325.  
  3326. Description
  3327.      Sets information about the current image. Currently, only the
  3328.      image's screenmode can be set.
  3329.  
  3330. Parameters
  3331.     MODEID/N
  3332.           The current screenmode ID of the image.
  3333.  
  3334. Returns
  3335.      Nothing.
  3336.  
  3337. Errors
  3338.      rc = 0 if the operation was successful.
  3339.  
  3340.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3341.      string describing the problem.
  3342.  
  3343. Example
  3344.      The following sets the current image's screenmode to LoRes.
  3345.  
  3346.           IMAGEINFO_SET MODEID 0
  3347.  
  3348.      The following opens up a screenmode requester and allows the user
  3349.      to choose the screenmode of the current image:
  3350.  
  3351.           REQUEST_SCREENMODE STEM SCREENMODEINFO.
  3352.           
  3353.           IMAGEINFO_SET MODEID SCREENMODEINFO.MODEID
  3354.  
  3355. Known bugs
  3356.      None.
  3357.  
  3358. NOTIFY_DIR
  3359. ----------
  3360.  
  3361. Command
  3362.      NOTIFY_DIR
  3363.  
  3364. Parameters template
  3365.      PATHPART/A
  3366.  
  3367. Return template
  3368.      FILEPART, ACTION
  3369.  
  3370. Description
  3371.      Monitors the specified directory and returns when a file is either
  3372.      updated or added to the directory. The affected filename is
  3373.      returned as well as the action that had been performed (either
  3374.      updated or added).
  3375.  
  3376.      Whilst the command is waiting for any change in the specified
  3377.      directory, the fuelgauge will flash and the user may press the
  3378.      `Abort' button on the infobar to cancel the operation.
  3379.  
  3380. Parameters
  3381.     PATHPART
  3382.           The path (directory) to be monitored.
  3383.  
  3384. Returns
  3385.     FILEPART
  3386.           The filename of the file that has been changed; the filename
  3387.           returned is without the full pathname.  See ARexx_FILE_JOIN,
  3388.           for information on how to add the path part of the filename
  3389.           to create a full filename.
  3390.  
  3391.     ACTION
  3392.           A string containing a descripion of the action performed on
  3393.           FILE, either "ADDED" if the file is new to the directory or
  3394.           "UPDATED" if the file has been updated since the notify
  3395.           started.
  3396.  
  3397. Errors
  3398.      rc = 0 if the operation was successful.
  3399.  
  3400.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3401.      string describing the problem.
  3402.  
  3403. Example
  3404.      The following monitors the ram disk for any change, returning any
  3405.      change in the NOTIFYINFO. stem:
  3406.  
  3407.           NOTIFY_DIR PATHPART "ram:" STEM NOTIFYINFO.
  3408.  
  3409.      The following monitors the "Pics" directory for any change and pops
  3410.      up a requester informing the user of what has happened:
  3411.  
  3412.           NOTIFY_DIR PATHPART "Pics" STEM NOTIFYINFO.
  3413.           
  3414.           REQUEST_MESSAGE TEXT '"'NOTIFYINFO.FILEPART||' has been '||,
  3415.              NOTIFYINFO.ACTION'"'
  3416.  
  3417. Known bugs
  3418.        1. AmigaDos won't notify us if a file is deleted from the
  3419.           directory.
  3420.  
  3421.        2. If many files are added / updated in the directory quickly,
  3422.           NOTIFY_DIR may not necessarily return the first changed file.
  3423.           The same is true if the a file is created with an icon,
  3424.           NOTIFY_DIR may return the name of the ".info" file.
  3425.  
  3426.        3. File notification is not implemented on all filesystems
  3427.           (notably some network filesystems). No problems occur with
  3428.           either the stand ard OFS or FFS filesystems.
  3429.  
  3430. NOTIFY_FILE
  3431. -----------
  3432.  
  3433. Command
  3434.      NOTIFY_FILE
  3435.  
  3436. Parameters template
  3437.      FILE/A
  3438.  
  3439. Return template
  3440.      None.
  3441.  
  3442. Description
  3443.      Waits for a change in the specified file. The function will return
  3444.      if either a new file by the given name is created, or if the file
  3445.      is updated. Unlike NOTIFY_DIR (see ARexx_NOTIFY_DIR), NOTIFY_FILE
  3446.      also returns if the specified file is deleted.
  3447.  
  3448.      Whilst the command is waiting for any change in the specified file,
  3449.      the fuelgauge will flash and the user may press the `Abort' button
  3450.      on the infobar to cancel the operation.
  3451.  
  3452.      This function can be used to trigger ImageStudio to perform a given
  3453.      set of operations when the specified file has been created. For
  3454.      example, if 50 frames of an animation were being rendered by a
  3455.      ray-tracer then ImageStudio could be told to wait for the last
  3456.      frame to be created an then convert them all to HAM format.
  3457.  
  3458. Parameters
  3459.     FILE
  3460.           The file to be monitored.
  3461.  
  3462. Returns
  3463.      Nothing.
  3464.  
  3465. Errors
  3466.      rc = 0 if the operation was successful.
  3467.  
  3468.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3469.      string describing the problem.
  3470.  
  3471. Example
  3472.      The following monitors the file "Pics/CheetahFace250x200.ilbm" for
  3473.      any change:
  3474.  
  3475.           NOTIFY_FILE "Pics/CheetahFace250x200.ilbm"
  3476.  
  3477.      The following waits for the 50th frame in the sequence "Render." to
  3478.      be created in the "Work:RayTrace":
  3479.  
  3480.           NOTIFY_FILE "Work:RayTrace/Render.050"
  3481.  
  3482. Known bugs
  3483.      File notification is not implemented on all filesystems (notably
  3484.      some network filesystems). No problems occur with either the stand
  3485.      ard OFS or FFS filesystems.
  3486.  
  3487. OPEN
  3488. ----
  3489.  
  3490. Command
  3491.      OPEN
  3492.  
  3493. Parameters template
  3494.      FILE/A, FORMAT, ARGS, FORCE/S
  3495.  
  3496. Return template
  3497.      None.
  3498.  
  3499. Description
  3500.      Loads the specified file into ImageStudio. Most file formats are
  3501.      automatically recognised by the program, but it is possible to
  3502.      specify extra information with the FORMAT and ARGS parameters.
  3503.  
  3504. Parameters
  3505.     FILE
  3506.           The filename of the file to be loaded.
  3507.  
  3508.     FORMAT
  3509.           Most file formats are automatically recognised by
  3510.           ImageStudio, but some raw formats need to be specified. If
  3511.           the file to be loaded is known to be a raw format, this
  3512.           parameter should be used to specify the file format. See File
  3513.           formats, for more information on raw file formats.
  3514.  
  3515.     ARGS
  3516.           Some file formats require extra information to be specified a
  3517.           load time, this parameter should be used to specify more
  3518.           information.  See File formats, for more information on extra
  3519.           arguments allowed by the loaders.
  3520.  
  3521.     FORCE/S
  3522.           By default the user will be warned if they are about to
  3523.           overwrite the current project. By specifying FORCE, the user
  3524.           is not warned.
  3525.  
  3526. Returns
  3527.      Nothing.
  3528.  
  3529. Errors
  3530.      rc = 0 if the operation was successful.
  3531.  
  3532.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3533.      string describing the problem.
  3534.  
  3535. Example
  3536.      The following opens the file "Pics/CheetahFace250x200.ilbm":
  3537.  
  3538.           OPEN "Pics/CheetahFace250x200.ilbm"
  3539.  
  3540. Known bugs
  3541.      None.
  3542.  
  3543. PALETTE_GET
  3544. -----------
  3545.  
  3546. Command
  3547.      PALETTE_GET
  3548.  
  3549. Parameters template
  3550.      None.
  3551.  
  3552. Return template
  3553.      PALETTE/N/M
  3554.  
  3555. Description
  3556.      Gets the palette information from the current image.
  3557.  
  3558. Parameters
  3559.      None.
  3560.  
  3561. Returns
  3562.     PALETTE/N/M
  3563.           An array of the colours in the palette, ordered red, green
  3564.           then blue. Check PALETTE.COUNT for the number of entries in
  3565.           the array, divide this value by 3 to get the number of
  3566.           colours in the palette.
  3567.  
  3568. Errors
  3569.      rc = 0 if the operation was successful.
  3570.  
  3571.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3572.      string describing the problem.
  3573.  
  3574. Example
  3575.      The following gets the palette from the current image and returns
  3576.      it in the PALETTE. stem:
  3577.  
  3578.           PALETTE_GET STEM PALETTE.
  3579.  
  3580.      The following gets the palette from the current image (if possible)
  3581.      and puts the first colour value in a requester:
  3582.  
  3583.           IMAGEINFO_GET STEM IMAGEINFO.
  3584.           
  3585.           if IMAGEINFO.DEPTH ~= 24 then do
  3586.              PALETTE_GET STEM PALETTE.
  3587.           
  3588.              numcolours = PALETTE.PALETTE.COUNT / 3
  3589.           
  3590.              REQUEST_MESSAGE TEXT '"'numcolours||' colours, colour 0 = '||,
  3591.                 PALETTE.PALETTE.0||','||PALETTE.PALETTE.1||','||,
  3592.                 PALETTE.PALETTE.2||'"'
  3593.              end
  3594.           else do
  3595.              REQUEST_MESSAGE TEXT '"Image has no palette."'
  3596.              end
  3597.  
  3598. Known bugs
  3599.      None.
  3600.  
  3601. PALETTE_LOAD
  3602. ------------
  3603.  
  3604. Command
  3605.      PALETTE_LOAD
  3606.  
  3607. Parameters template
  3608.      FILE/A, DITHER
  3609.  
  3610. Return template
  3611.      None.
  3612.  
  3613. Description
  3614.      Loads and remaps a palette onto the current image. Dithering is
  3615.      also allowed to get a better approximation with the new palette.
  3616.  
  3617. Parameters
  3618.     FILE/A
  3619.           The filename of the palette file to load.
  3620.  
  3621.     DITHER
  3622.           A string containing the name of the dither to apply when
  3623.           applying the new palette. The same dither names as the
  3624.           COLOURS command are used (see ARexx_COLOURS). By default, no
  3625.           dithering is applied.
  3626.  
  3627. Returns
  3628.      Nothing.
  3629.  
  3630. Errors
  3631.      rc = 0 if the operation was successful.
  3632.  
  3633.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3634.      string describing the problem.
  3635.  
  3636. Example
  3637.      The following loads a general 256 colour palette onto the image:
  3638.  
  3639.           PALETTE_LOAD FILE "Palettes/General256.palette"
  3640.  
  3641.      The following loads a general 16 colour palette with
  3642.      Floyd-Steinberg dithering onto the image:
  3643.  
  3644.           PALETTE_LOAD FILE "Palettes/General16.palette" DITHER "FS"
  3645.  
  3646. Known bugs
  3647.      None.
  3648.  
  3649. PALETTE_SAVE
  3650. ------------
  3651.  
  3652. Command
  3653.      PALETTE_SAVE
  3654.  
  3655. Parameters template
  3656.      FILE/A
  3657.  
  3658. Return template
  3659.      None.
  3660.  
  3661. Description
  3662.      Saves the palette of the current image out to disk. The image must
  3663.      be colour-mapped for this operation to work.
  3664.  
  3665. Parameters
  3666.     FILE/A
  3667.           The filename of the palette file to save.
  3668.  
  3669. Returns
  3670.      Nothing.
  3671.  
  3672. Errors
  3673.      rc = 0 if the operation was successful.
  3674.  
  3675.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3676.      string describing the problem.
  3677.  
  3678. Example
  3679.      The following saves the current image's palette to the ram disk:
  3680.  
  3681.           PALETTE_SAVE FILE "ram:Image.palette"
  3682.  
  3683.      The following only saves out the palette of the current image if
  3684.      the current image is colour-mapped:
  3685.  
  3686.           IMAGEINFO_GET STEM IMAGEINFO.
  3687.           
  3688.           if IMAGEINFO.DEPTH ~= 24 then do
  3689.              PALETTE_SAVE FILE "Image.palette"
  3690.              end
  3691.  
  3692. Known bugs
  3693.      None.
  3694.  
  3695. PALETTE_SET
  3696. -----------
  3697.  
  3698. Command
  3699.      PALETTE_SET
  3700.  
  3701. Parameters template
  3702.      PALETTE/N/M/A, REMAP/S
  3703.  
  3704. Return template
  3705.      None.
  3706.  
  3707. Description
  3708.      Forces the array of numbers as the current palette for the image.
  3709.      The depth of the resultant image is taken from the number of
  3710.      entries in the array. This is useful for adding colours into the
  3711.      current image's palette.
  3712.  
  3713. Parameters
  3714.     PALETTE/N/M/A
  3715.           The array of numbers that will build the palette. The total
  3716.           number of elements in the array determines the number of
  3717.           palette entries and the depth of the resultant images. The
  3718.           entries in the array are arranged colour0_red, colour0_green,
  3719.           colour0_blue, colour1_red etc... The values of the red, green
  3720.           and blue values are 0 to 255.
  3721.  
  3722.     REMAP
  3723.           By default, the given palette is forced up on the current
  3724.           image. By specifying the REMAP switch, the image can be
  3725.           remapped to best fit the new palette.
  3726.  
  3727. Returns
  3728.      Nothing.
  3729.  
  3730. Errors
  3731.      rc = 0 if the operation was successful.
  3732.  
  3733.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3734.      string describing the problem.
  3735.  
  3736. Example
  3737.      The following sets the current image to black and white, remapping
  3738.      as best as possible:
  3739.  
  3740.           PALETTE_SET PALETTE "0 0 0 255 255 255" REMAP
  3741.  
  3742.      The following reduces the number of colours in the image to 29,
  3743.      then sets the top 3 colours to be red, white and blue. This is an
  3744.      example of how the returned stem value can be turned into a list of
  3745.      parameters for another command:
  3746.  
  3747.           /* Reduce the number of colours */
  3748.           
  3749.           COLOURS NUMCOLOURS 29 DITHER "FS"
  3750.           
  3751.           /* Get the current palette */
  3752.           
  3753.           PALETTE_GET STEM OLDPALETTE.
  3754.           
  3755.           /* Set the top 3 colours to red, white and blue */
  3756.           
  3757.           OLDPALETTE.PALETTE.87 = 255  /* Red */
  3758.           OLDPALETTE.PALETTE.88 = 0
  3759.           OLDPALETTE.PALETTE.89 = 0
  3760.           
  3761.           OLDPALETTE.PALETTE.90 = 255  /* White */
  3762.           OLDPALETTE.PALETTE.91 = 255
  3763.           OLDPALETTE.PALETTE.92 = 255
  3764.           
  3765.           OLDPALETTE.PALETTE.93 = 0    /* Blue */
  3766.           OLDPALETTE.PALETTE.94 = 0
  3767.           OLDPALETTE.PALETTE.95 = 255
  3768.           
  3769.           /* Convert the stem to a parameter list */
  3770.           
  3771.           NEWPALETTE = ''
  3772.           
  3773.           do l = 0 to (OLDPALETTE.PALETTE.COUNT - 1)
  3774.              NEWPALETTE = NEWPALETTE||' '||OLDPALETTE.PALETTE.l
  3775.              end
  3776.           
  3777.           /* Force the new palette onto the image */
  3778.           
  3779.           PALETTE_SET PALETTE NEWPALETTE REMAP
  3780.  
  3781. Known bugs
  3782.      None.
  3783.  
  3784. PALETTE_SORT
  3785. ------------
  3786.  
  3787. Command
  3788.      PALETTE_SORT
  3789.  
  3790. Parameters template
  3791.      FROM/N, TO/N, LIGHTTODARK/S
  3792.  
  3793. Return template
  3794.      None.
  3795.  
  3796. Description
  3797.      Sorts the colours in the palette into ascending / descending order
  3798.      of brightness. The whole palette can be sorted or a selected range.
  3799.  
  3800.      The colours in the palette are numbered from zero, so a 32 colour
  3801.      image would have palette entries 0 to 31 inclusive.
  3802.  
  3803.      The image in automatically remapped to the new palette after the
  3804.      operation.
  3805.  
  3806. Parameters
  3807.     FROM/N
  3808.           The first colour in the palette to sort from. By default this
  3809.           is zero.
  3810.  
  3811.     TO/N
  3812.           The last colour in the palette to sort to. By default this is
  3813.           the last colour in the image's palette.
  3814.  
  3815.     LIGHTTODARK/S
  3816.           By default the palette is sorted from dark to light. This
  3817.           option allows the palette to be sorted light to dark.
  3818.  
  3819. Returns
  3820.      Nothing.
  3821.  
  3822. Errors
  3823.      rc = 0 if the operation was successful.
  3824.  
  3825.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3826.      string describing the problem.
  3827.  
  3828. Example
  3829.      The following sorts the colours in the image's palette dark through
  3830.      to light:
  3831.  
  3832.           PALETTE_SORT
  3833.  
  3834.      The following sorts the lower 32 colours in a 64 colour image from
  3835.      light to dark:
  3836.  
  3837.           PALETTE_SORT FROM 0 TO 31 LIGHTTODARK
  3838.  
  3839. Known bugs
  3840.      None.
  3841.  
  3842. PASTE
  3843. -----
  3844.  
  3845. Command
  3846.      PASTE
  3847.  
  3848. Parameters template
  3849.      FORCE/S
  3850.  
  3851. Return template
  3852.      None.
  3853.  
  3854. Description
  3855.      Pastes the image in the clipboard into the program.
  3856.  
  3857. Parameters
  3858.     FORCE/S
  3859.           By default the user is warned if the the current project is
  3860.           unsaved and they are about to overwrite it. This parameter
  3861.           will not warn the user and overwrite the project regardless.
  3862.  
  3863. Returns
  3864.      Nothing.
  3865.  
  3866. Errors
  3867.      rc = 0 if the operation was successful.
  3868.  
  3869.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3870.      string describing the problem.
  3871.  
  3872. Example
  3873.      The following pastes the image in the clipboard, warning the user
  3874.      if the current project isn't saved:
  3875.  
  3876.           PASTE
  3877.  
  3878.      The following pastes the image in the clipboard with no warning to
  3879.      the user if the current project isn't saved:
  3880.  
  3881.           PASTE FORCE
  3882.  
  3883. Known bugs
  3884.      With v2.0.x, if the user presses `Abort' when the file is being
  3885.      pasted, an error message is not returned and so the ARexx script as
  3886.      sumes the file pasted OK. This will be fixed when the loaders /
  3887.      savers become external modules.
  3888.  
  3889. PREF_GET
  3890. --------
  3891.  
  3892. Command
  3893.      PREF_GET
  3894.  
  3895. Parameters template
  3896.      NAME/A
  3897.  
  3898. Return template
  3899.      VALUE
  3900.  
  3901. Description
  3902.      Allows the user to read any of the preferences values currently in
  3903.      use by the program.
  3904.  
  3905.      See Prefs, for a full description of the available preference
  3906.      values.
  3907.  
  3908. Parameters
  3909.     NAME/A
  3910.           The name of the preference whose value should be returned. The
  3911.           tooltype name is given here, so to read the virtual memory
  3912.           pagesize for example, NAME would be PAGESIZE.
  3913.  
  3914.           If the preference name is not found, an error is returned.
  3915.  
  3916. Returns
  3917.     VALUE
  3918.           The value of the preference. If the preference is a string,
  3919.           VALUE is the string value, if the preference is numeric,
  3920.           VALUE is the number value and if the preference is boolean,
  3921.           VALUE is either the value 1 for a positive setting ("YES" or
  3922.           "ON") or 0 for a negative setting ("NO" or "OFF").
  3923.  
  3924. Errors
  3925.      rc = 0 if the operation was successful.
  3926.  
  3927.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3928.      string describing the problem.
  3929.  
  3930. Example
  3931.      The following finds the current virtual memory pagesize:
  3932.  
  3933.           PREF_GET NAME "PAGESIZE"
  3934.           
  3935.           say 'The pagesize is 'RESULT * 1024' bytes'
  3936.  
  3937.      The following detects whether the preview dithering is being used:
  3938.  
  3939.           PREF_GET NAME "PREVIEWDITHER"
  3940.           
  3941.           if RESULT == 1 then do
  3942.              say 'Preview dithering is ON'
  3943.              end
  3944.           else do
  3945.              say 'Preview dithering is OFF'
  3946.              end
  3947.  
  3948. Known bugs
  3949.      None.
  3950.  
  3951. PREF_SET
  3952. --------
  3953.  
  3954. Command
  3955.      PREF_SET
  3956.  
  3957. Parameters template
  3958.      NAME/A, VALUE/A
  3959.  
  3960. Return template
  3961.      None.
  3962.  
  3963. Description
  3964.      Allows the user to set any of the preferences values currently in
  3965.      use by the program. Changing some preference variables may have no
  3966.      effect until the next time the program is run.
  3967.  
  3968.      See Prefs, for a full description of the available preference
  3969.      values.
  3970.  
  3971. Parameters
  3972.     NAME/A
  3973.           The name of the preference whose value should be changed. The
  3974.           tooltype name is given here, so to set the virtual memory
  3975.           pagesize for example, NAME would be PAGESIZE.
  3976.  
  3977.           If the preference name is not found, an error is returned.
  3978.  
  3979.     VALUE/A
  3980.           The desired value of the preference. If the preference is a
  3981.           string, VALUE should be a string value, if the preference is
  3982.           numeric, VALUE should be a number value. If the preference is
  3983.           boolean, VALUE can be either the strings "YES" or "ON" to set
  3984.           a positive value, "NO" or "OFF" to set a negative value.
  3985.  
  3986. Returns
  3987.      Nothing.
  3988.  
  3989. Errors
  3990.      rc = 0 if the operation was successful.
  3991.  
  3992.      rc = 10 if the operation failed for any reason, rc2 will contain a
  3993.      string describing the problem.
  3994.  
  3995. Example
  3996.      The following turns the preview redraw off:
  3997.  
  3998.           PREF_SET NAME "PREVIEWREDRAW" VALUE "OFF"
  3999.  
  4000.      The following sets the virtal memory pagesize to be 200K:
  4001.  
  4002.           PREF_SET NAME "PAGESIZE" VALUE 200
  4003.  
  4004. Known bugs
  4005.      None.
  4006.  
  4007. QUIT
  4008. ----
  4009.  
  4010. Command
  4011.      QUIT
  4012.  
  4013. Parameters template
  4014.      FORCE/S
  4015.  
  4016. Return template
  4017.      None.
  4018.  
  4019. Description
  4020.      Quits the program. By using the FORCE option, the program can be
  4021.      forced to quit without warning the user.
  4022.  
  4023.      The program cannot be quit by issuing the QUIT command from the
  4024.      command shell.
  4025.  
  4026. Parameters
  4027.     FORCE/S
  4028.           By default the user is warned if the program is about to quit
  4029.           and the current project remains unsaved. Specifying this
  4030.           parameter will force the program to quit regardless.
  4031.  
  4032. Returns
  4033.      Absolutely nothing.
  4034.  
  4035. Errors
  4036.      rc = 0 if the operation was successful.
  4037.  
  4038.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4039.      string describing the problem.
  4040.  
  4041. Example
  4042.      The following quits the program, warning the user if the current
  4043.      project is unsaved:
  4044.  
  4045.           QUIT
  4046.  
  4047.      The following quits the program regardless of the status of the
  4048.      current project:
  4049.  
  4050.           QUIT FORCE
  4051.  
  4052. Known bugs
  4053.      None.
  4054.  
  4055. REDO
  4056. ----
  4057.  
  4058. Command
  4059.      REDO
  4060.  
  4061. Parameters template
  4062.      None.
  4063.  
  4064. Return template
  4065.      None.
  4066.  
  4067. Description
  4068.      Re-does the last UNDO operation (see ARexx_UNDO).
  4069.  
  4070. Parameters
  4071.      None.
  4072.  
  4073. Returns
  4074.      Nothing.
  4075.  
  4076. Errors
  4077.      rc = 0 if the operation was successful.
  4078.  
  4079.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4080.      string describing the problem.
  4081.  
  4082. Example
  4083.      The following re-does the last UNDO operation:
  4084.  
  4085.           REDO
  4086.  
  4087. Known bugs
  4088.      None.
  4089.  
  4090. REDRAW
  4091. ------
  4092.  
  4093. Command
  4094.      REDRAW
  4095.  
  4096. Parameters template
  4097.      None.
  4098.  
  4099. Return template
  4100.      None.
  4101.  
  4102. Description
  4103.      Forces a redraw of the image in the preview window. This is not
  4104.      normally needed, as all the redrawing is done automatically
  4105.      however it could be used if the PREVIEWREDRAW preference is
  4106.      changed within a script.
  4107.  
  4108. Parameters
  4109.      None.
  4110.  
  4111. Returns
  4112.      Nothing.
  4113.  
  4114. Errors
  4115.      rc = 0 if the operation was successful.
  4116.  
  4117.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4118.      string describing the problem.
  4119.  
  4120. Example
  4121.      The following forces a redraw of the image in the preview window:
  4122.  
  4123.           REDRAW
  4124.  
  4125.      The following forces a redraw of the image after the preview redraw
  4126.      has been turned off with the PREVIEWREDRAW preference:
  4127.  
  4128.           PREF_SET NAME "PREVIEWREDRAW" VALUE "OFF"
  4129.           
  4130.           REDRAW
  4131.  
  4132. Known bugs
  4133.      None.
  4134.  
  4135. REGION_CLEAR
  4136. ------------
  4137.  
  4138. Command
  4139.      REGION_CLEAR
  4140.  
  4141. Parameters template
  4142.      None.
  4143.  
  4144. Return template
  4145.      None.
  4146.  
  4147. Description
  4148.      Removes the currently selected region, if one exists. No error is
  4149.      given if a region doesn't exist.
  4150.  
  4151. Parameters
  4152.      None.
  4153.  
  4154. Returns
  4155.      Nothing.
  4156.  
  4157. Errors
  4158.      rc = 0 if the operation was successful.
  4159.  
  4160.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4161.      string describing the problem.
  4162.  
  4163. Example
  4164.      The following clears the currently selected region:
  4165.  
  4166.           REGION_CLEAR
  4167.  
  4168.      The following checks that a region is selected before trying to
  4169.      clear it:
  4170.  
  4171.           REGION_GET STEM REGIONINFO.
  4172.           
  4173.           if REGIONINFO.MINX ~= -1 then do
  4174.              REGION_CLEAR
  4175.              end
  4176.  
  4177. Known bugs
  4178.      None.
  4179.  
  4180. REGION_GET
  4181. ----------
  4182.  
  4183. Command
  4184.      REGION_GET
  4185.  
  4186. Parameters template
  4187.      None.
  4188.  
  4189. Return template
  4190.      MINX/N, MINY/N, MAXX/N, MAXY/N, WIDTH/N, HEIGHT/N
  4191.  
  4192. Description
  4193.      Gets the current region dimensions from the image. If no region is
  4194.      selected, -1 is returned in all the fields.
  4195.  
  4196.      The values returned are the values of all the pixels inside the
  4197.      selected region. For example, if the top left pixel only of the
  4198.      image was selected the following values would be returned:
  4199.  
  4200.           MINX = 0
  4201.           MINY = 0
  4202.           MAXX = 0
  4203.           MAXY = 0
  4204.           WIDTH = 1
  4205.           HEIGHT = 1
  4206.  
  4207. Parameters
  4208.      None.
  4209.  
  4210. Returns
  4211.     MINX/N
  4212.           The left-most pixel included in the selected region, -1 if no
  4213.           region is selected.
  4214.  
  4215.     MINY/N
  4216.           The top-most pixel included in the selected region, -1 if no
  4217.           region is selected.
  4218.  
  4219.     MAXX/N
  4220.           The right-most pixel included in the selected region, -1 if no
  4221.           region is selected.
  4222.  
  4223.     MAXY/N
  4224.           The bottom-most pixel included in the selected region, -1 if
  4225.           no region is selected.
  4226.  
  4227.     WIDTH/N
  4228.           The width of the selected region, -1 if no region is selected.
  4229.  
  4230.     HEIGHT/N
  4231.           The height of the selected region, -1 if no region is
  4232.           selected.
  4233.  
  4234. Errors
  4235.      rc = 0 if the operation was successful.
  4236.  
  4237.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4238.      string describing the problem.
  4239.  
  4240. Example
  4241.      The following gets the currently selected region and returns the
  4242.      value in the REGIONINFO. stem:
  4243.  
  4244.           REGION_GET STEM REGIONINFO.
  4245.  
  4246.      The following checks that a region is selected, popping up an
  4247.      message requester:
  4248.  
  4249.           REGION_GET STEM REGIONINFO.
  4250.           
  4251.           if REGIONINFO.MINX ~= -1 then do
  4252.              REQUEST_MESSAGE TEXT '"Width,Height = '||REGIONINFO.WIDTH||,
  4253.                 ','||REGIONINFO.HEIGHT||'"'
  4254.              end
  4255.           else do
  4256.              REQUEST_MESSAGE TEXT '"No region selected"'
  4257.              end
  4258.  
  4259. Known bugs
  4260.      None.
  4261.  
  4262. REGION_SET
  4263. ----------
  4264.  
  4265. Command
  4266.      REGION_SET
  4267.  
  4268. Parameters template
  4269.      None.
  4270.  
  4271. Return template
  4272.      XSTART/N, YSTART/N, TO/S, XEND/N, YEND/N
  4273.  
  4274. Description
  4275.      Sets the selected region of the image. The region can either be
  4276.      specifed by the co-ordinates of its corners or by its width, height
  4277.      and position.
  4278.  
  4279. Parameters
  4280.     XSTART/N
  4281.           The left-most co-ordinate included in the region.
  4282.  
  4283.     YSTART/N
  4284.           The top-most co-ordinate included in the region.
  4285.  
  4286.     TO/S
  4287.           By default the region is specified by the co-ordinates of its
  4288.           top-left corners and its width and height. By using the TO
  4289.           parameter, the region can be specified with the lower-bottom
  4290.           co-ordinate of the region.
  4291.  
  4292.     XEND/N
  4293.           The width of the region. If the TO parameter is used, this
  4294.           value is used to specify the right-most pixel included by the
  4295.           region.
  4296.  
  4297.     YEND/n
  4298.           The height of the region. If the TO parameter is used, this
  4299.           value is used to specify the bottom-most pixel included by
  4300.           the region.
  4301.  
  4302. Returns
  4303.      Nothing.
  4304.  
  4305. Errors
  4306.      rc = 0 if the operation was successful.
  4307.  
  4308.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4309.      string describing the problem.
  4310.  
  4311. Example
  4312.      The following sets the selected region to have it's top-left corner
  4313.      at (10,20) with a width of 30 and height of 40:
  4314.  
  4315.           REGION_SET 10 20 30 40
  4316.  
  4317.      The following sets the selected region to have it's top-left corner
  4318.      at (50,60) and its bottom-right corner to include (70,80):
  4319.  
  4320.           REGION_SET 50 60 TO 70 80
  4321.  
  4322. Known bugs
  4323.      None.
  4324.  
  4325. REQUEST_DIR
  4326. -----------
  4327.  
  4328. Command
  4329.      REQUEST_DIR
  4330.  
  4331. Parameters template
  4332.      PATHPART, TITLE
  4333.  
  4334. Return template
  4335.      PATHPART
  4336.  
  4337. Description
  4338.      Opens a directory requester, allowing the user to choose a
  4339.      directory name.
  4340.  
  4341.      The other ImageStudio windows are automatically blocked when the
  4342.      requester is opened and unblocked when the requester is closed.
  4343.  
  4344.      In common with all ImageStudio requesters, if the user presses
  4345.      `Cancel', an error message is returned. For the script to trap this
  4346.      error, global error checking must be turned off. See Error
  4347.      checking, for more information.
  4348.  
  4349. Parameters
  4350.     PATHPART
  4351.           The default path name to put in the requester.
  4352.  
  4353.     TITLE
  4354.           The text for the title bar of the requester.
  4355.  
  4356. Returns
  4357.     PATHPART
  4358.           The selected path from the requester.
  4359.  
  4360. Errors
  4361.      rc = 0 if the operation was successful.
  4362.  
  4363.      rc = 10 if the operation failed for any reason or the user
  4364.      cancelled requester, rc2 will contain a string describing the
  4365.      problem.
  4366.  
  4367. Example
  4368.      The following puts up a directory requester, with the results being
  4369.      put in the DIRINFO. stem:
  4370.  
  4371.           REQUEST_DIR STEM DIRINFO.
  4372.  
  4373.      The following puts up a directory requester with a default
  4374.      directory of "T:", the result being printed in a message requester:
  4375.  
  4376.           REQUEST_DIR PATHPART "T:" STEM DIRINFO.
  4377.           
  4378.           REQUEST_MESSAGE TEXT '"You chose '||DIRINFO.PATHPART||'"'
  4379.  
  4380. Known bugs
  4381.      None.
  4382.  
  4383. REQUEST_FILE
  4384. ------------
  4385.  
  4386. Command
  4387.      REQUEST_FILE
  4388.  
  4389. Parameters template
  4390.      PATHPART, FILEPART, PATTERN, TITLE
  4391.  
  4392. Return template
  4393.      FILE
  4394.  
  4395. Description
  4396.      Opens a file requester, allowing the user to choose a filename.
  4397.  
  4398.      The other ImageStudio windows are automatically blocked when the
  4399.      requester is opened and unblocked when the requester is closed.
  4400.  
  4401.      In common with all ImageStudio requesters, if the user presses
  4402.      `Cancel', an error message is returned. For the script to trap this
  4403.      error, global error checking must be turned off. See Error
  4404.      checking, for more information.
  4405.  
  4406. Parameters
  4407.     PATHPART
  4408.           The default path name to put in the requester.
  4409.  
  4410.     FILEPART
  4411.           The default filename to put in the requester.
  4412.  
  4413.     PATTERN
  4414.           An AmigaDos pattern matching pattern, will only show files in
  4415.           the requester which match the given pattern. By default, all
  4416.           files are shown.
  4417.  
  4418.     TITLE
  4419.           The text for the title bar of the requester.
  4420.  
  4421. Returns
  4422.     FILE
  4423.           The selected filename from the requester, the filename
  4424.           consists of both the FILEPART and PATHPART parts.
  4425.  
  4426. Errors
  4427.      rc = 0 if the operation was successful.
  4428.  
  4429.      rc = 10 if the operation failed for any reason or the user
  4430.      cancelled requester, rc2 will contain a string describing the
  4431.      problem.
  4432.  
  4433. Example
  4434.      The following puts up a file requester, with the results being put
  4435.      in the FILEINFO. stem:
  4436.  
  4437.           REQUEST_FILE STEM FILEINFO.
  4438.  
  4439.      The following puts up a file requester with the result being
  4440.      printed in a message requester. The default file is
  4441.      "Pics/HappyFace240x250.bmp":
  4442.  
  4443.           REQUEST_FILE PATHPART "Pics" FILEPART "HappyFace240x250.bmp",
  4444.              STEM FILEINFO.
  4445.           
  4446.           REQUEST_MESSAGE TEXT '"You chose '||FILEINFO.FILE||'"'
  4447.  
  4448.      The following will only show files with a ".ilbm" file extension:
  4449.  
  4450.           REQUEST_FILE PATTERN "#?.ilbm"
  4451.  
  4452. Known bugs
  4453.      None.
  4454.  
  4455. REQUEST_LIST
  4456. ------------
  4457.  
  4458. Command
  4459.      REQUEST_LIST
  4460.  
  4461. Parameters template
  4462.      STRINGS/M/A, TITLE
  4463.  
  4464. Return template
  4465.      NUMBER/N, STRING
  4466.  
  4467. Description
  4468.      Opens a requester containing a list of options for the user to
  4469.      choose.
  4470.  
  4471.      The other ImageStudio windows are automatically blocked when the
  4472.      requester is opened and unblocked when the requester is closed.
  4473.  
  4474.      In common with all ImageStudio requesters, if the user presses
  4475.      `Cancel', an error message is returned. For the script to trap this
  4476.      error, global error checking must be turned off. See Error
  4477.      checking, for more information.
  4478.  
  4479. Parameters
  4480.     STRINGS/M/A
  4481.           The a list of string options for the user to choose.
  4482.  
  4483.     TITLE
  4484.           The text for the title bar of the requester.
  4485.  
  4486. Returns
  4487.     NUMBER/N
  4488.           The number in the list of the selected string. The strings
  4489.           are num bered from zero, so selecting the first choice in the
  4490.           list would set NUMBER to 0.
  4491.  
  4492.     STRING
  4493.           The selected string.
  4494.  
  4495. Errors
  4496.      rc = 0 if the operation was successful.
  4497.  
  4498.      rc = 10 if the operation failed for any reason, or the user can
  4499.      celled requester, or no choice was made. rc2 will contain a string
  4500.      describing the problem.
  4501.  
  4502. Example
  4503.      The following puts up a list requester, with the results being put
  4504.      in the LISTINFO. stem:
  4505.  
  4506.           REQUEST_LIST STRINGS "IFF-ILBM" "PCX" "BMP" STEM LISTINFO.
  4507.  
  4508.      The following puts up a list requester, the result being printed in
  4509.      a message requester:
  4510.  
  4511.           REQUEST_LIST STRINGS "First" "Second" "Third" STEM LISTINFO.
  4512.           
  4513.           REQUEST_MESSAGE TEXT '"You chose '||LISTINFO.STRING||','||,
  4514.              ' option '||LISTINFO.NUMBER'"'
  4515.  
  4516. Known bugs
  4517.      None.
  4518.  
  4519. REQUEST_MESSAGE
  4520. ---------------
  4521.  
  4522. Command
  4523.      REQUEST_MESSAGE
  4524.  
  4525. Parameters template
  4526.      TEXT/A, BUTTONTEXT, AUTOCANCEL/S, TITLE
  4527.  
  4528. Return template
  4529.      NUMBER/N
  4530.  
  4531. Description
  4532.      Opens a general purpose message requester. Simple messages can be
  4533.      presented to the user for them to "OK" them. OK / Cancel requesters
  4534.      can be built with this requester, as well a complex multiple choice
  4535.      requesters.
  4536.  
  4537.      When designing requesters, it is worth remembering the following
  4538.      rules:
  4539.  
  4540.        1. The "Negative" response should be placed on the far right-hand
  4541.           button. For example, the `Cancel' button should be placed
  4542.           here.
  4543.  
  4544.        2. The "Positive" response should be placed on the far left-hand
  4545.           but ton. For example, the `OK' button should be placed here.
  4546.  
  4547.        3. Try to word your requesters to keep the positive and negative
  4548.           text as "OK" and "Cancel". Using options like "Go to it" and
  4549.           "Stop right here" doesn't make for a very intuitive interface.
  4550.  
  4551.        4. Keep the request text short. The user shouldn't have to read a
  4552.           screen full of text to find out what to do next.
  4553.  
  4554.        5. You should *NEVER* swap the "OK" and "Cancel" buttons around.
  4555.  
  4556.        6. The last point is *VERY* important.
  4557.  
  4558.      The other ImageStudio windows are automatically blocked when the
  4559.      requester is opened and unblocked when the requester is closed.
  4560.  
  4561.      If the AUTOCANCEL option is used and the user presses `Cancel', an
  4562.      error message is returned. For the script to trap this error,
  4563.      global error checking must be turned off. See Error checking, for
  4564.      more information.
  4565.  
  4566. Parameters
  4567.     TEXT/A
  4568.           The text to put into the requester. The text may contain
  4569.           multiple lines by including the `\n' characters in the string
  4570.           (see examples below).
  4571.  
  4572.     BUTTONTEXT
  4573.           The text for the buttons of the requester. The different
  4574.           buttons are seperated with a `|' character (i.e. BUTTONTEXT
  4575.           "OK|Cancel"). By default, only an "OK" button is placed in
  4576.           the requester.
  4577.  
  4578.     AUTOCANCEL/S
  4579.           By default REQUEST_MESSAGE simply returns the number of the
  4580.           button that the user selected. If the requester is of the OK
  4581.           / Cancel variety, specifying the AUTOCANCEL switch allows the
  4582.           requester to stop the script should the user press `Cancel'.
  4583.  
  4584.     TITLE
  4585.           The text for the title bar of the requester.
  4586.  
  4587. Returns
  4588.     NUMBER
  4589.           The number of the selected button. If the requester has one
  4590.           button, NUMBER is set to 0. For more that one button, the
  4591.           right-most button sets NUMBER to 0, with the buttons being
  4592.           numbered from 1 upwards working left to right. For example,
  4593.           with a BUTTONTEXT of "OK|Save first|Cancel", "OK" would
  4594.           return 1, "Save first" would return 2 and "Cancel" would
  4595.           return 0.
  4596.  
  4597. Errors
  4598.      rc = 0 if the operation was successful.
  4599.  
  4600.      rc = 10 if the operation failed for any reason, rc2 will contain a
  4601.      string describing the problem. rc will also be set to 10 if the
  4602.      AUTOCANCEL option is used and the user selects `Cancel'.
  4603.  
  4604. Example
  4605.      The following puts up a message requester:
  4606.  
  4607.           REQUEST_MESSAGE TEXT '"Operation finished"'
  4608.  
  4609.      The following puts up a OK / Cancel requester, stopping the script
  4610.      if the user selects `Cancel':
  4611.  
  4612.           REQUEST_MESSAGE TEXT '"Continue ?"' BUTTONTEXT "OK|Cancel",
  4613.              AUTOCANCEL
  4614.  
  4615.      The following shows a multiple choice requester, followed by a
  4616.      requester showing which option was chosen:
  4617.  
  4618.           REQUEST_MESSAGE TEXT '"Choose an option..."',
  4619.              BUTTONTEXT "First|Second|Third"
  4620.           
  4621.           REQUEST_MESSAGE TEXT '"You chose option '||RESULT||'"'
  4622.  
  4623.      The following shows a message requester with multiple lines of text
  4624.      using the `\n' characters:
  4625.  
  4626.           REQUEST_MESSAGE TEXT '"Top line\nMiddle line\nBottom line"'
  4627.  
  4628. Known bugs
  4629.      None.
  4630.  
  4631. REQUEST_MULTIFILE
  4632. -----------------
  4633.  
  4634. Command
  4635.      REQUEST_MULTIFILE
  4636.  
  4637. Parameters template
  4638.      PATHPART, FILEPART, PATTERN, TITLE
  4639.  
  4640. Return template
  4641.      FILES/M
  4642.  
  4643. Description
  4644.      Opens a file requester, allowing the user to choose multiple filena
  4645.      mes.
  4646.  
  4647.      The other ImageStudio windows are automatically blocked when the
  4648.      requester is opened and unblocked when the requester is closed.
  4649.  
  4650.      In common with all ImageStudio requesters, if the user presses
  4651.      `Cancel', an error message is returned. For the script to trap this
  4652.      error, global error checking must be turned off. See Error
  4653.      checking, for more information.
  4654.  
  4655. Parameters
  4656.     PATHPART
  4657.           The default path name to put in the requester.
  4658.  
  4659.     FILEPART
  4660.           The default filename to put in the requester.
  4661.  
  4662.     PATTERN
  4663.           An AmigaDos pattern matching pattern, will only show files in
  4664.           the requester which match the given pattern. By default, all
  4665.           files are shown.
  4666.  
  4667.     TITLE
  4668.           The text for the title bar of the requester.
  4669.  
  4670. Returns
  4671.     FILES/M
  4672.           The selected filenames from the requester, the filenames
  4673.           consists of both the FILEPART and PATHPART parts.
  4674.  
  4675. Errors
  4676.      rc = 0 if the operation was successful.
  4677.  
  4678.      rc = 10 if the operation failed for any reason or the user
  4679.      cancelled requester, rc2 will contain a string describing the
  4680.      problem. rc will also be set to 10 if no files are chosen.
  4681.  
  4682. Example
  4683.      The following puts up a multifile requester, with the results being
  4684.      put in the MULTIFILEINFO. stem:
  4685.  
  4686.           REQUEST_MULTIFILE STEM MULTIFILEINFO.
  4687.  
  4688.      The following puts up a multifile requester, with a default path of
  4689.      "Pics" and loops through all the selected files by putting them in
  4690.      message requesters:
  4691.  
  4692.           REQUEST_MULTIFILE PATHPART "Pics" STEM MULTIFILENFO.
  4693.           
  4694.           do l = 0 to (MULTIFILENFO.FILES.COUNT - 1)
  4695.              REQUEST_MESSAGE TEXT '"'MULTIFILENFO.FILES.l'"',
  4696.                 BUTTONTEXT '"More...|Cancel"' AUTOCANCEL
  4697.              end
  4698.  
  4699. Known bugs
  4700.      If no file is chosen, the command returns a "user cancelled" error.
  4701.      This is normal.
  4702.  
  4703. REQUEST_MULTIVALUE
  4704. ------------------
  4705.  
  4706. Command
  4707.      REQUEST_MULTIVALUE
  4708.  
  4709. Parameters template
  4710.      STRINGS/M, TITLE
  4711.  
  4712. Return template
  4713.      STRINGS/M
  4714.  
  4715. Description
  4716.      Opens a multivalue requester, allowing the user to change any of
  4717.      the listed values.
  4718.  
  4719.      The other ImageStudio windows are automatically blocked when the
  4720.      requester is opened and unblocked when the requester is closed.
  4721.  
  4722.      In common with all ImageStudio requesters, if the user presses
  4723.      `Cancel', an error message is returned. For the script to trap this
  4724.      error, global error checking must be turned off. See Error
  4725.      checking, for more information.
  4726.  
  4727. Parameters
  4728.     STRINGS/M
  4729.           A list of strings with the values to display in the
  4730.           requester. The strings are grouped in pairs, the first string
  4731.           of the pair being the text for the requester, the second
  4732.           being the default value for that string.
  4733.  
  4734.           For example, the following would place width and height
  4735.           values in the requester, with default values of 640 and 480
  4736.           respectively:
  4737.  
  4738.                STRINGS "Width" "640" "Height" "480"
  4739.  
  4740.           If there isn't an even number of strings, an error is
  4741.           returned.
  4742.  
  4743.     TITLE
  4744.           The text for the title bar of the requester.
  4745.  
  4746. Returns
  4747.     STRINGS/M
  4748.           A list of strings with the values to display in the
  4749.           requester. The strings are grouped in pairs, the first string
  4750.           of the pair being the text for the requester, the second
  4751.           being the returned value for that string.
  4752.  
  4753. Errors
  4754.      rc = 0 if the operation was successful.
  4755.  
  4756.      rc = 10 if the operation failed for any reason or the user
  4757.      cancelled requester, rc2 will contain a string describing the
  4758.      problem. rc will also be set to 10 if no files are chosen.
  4759.  
  4760. Example
  4761.      The following puts up a multivalue requester, allowing the user to
  4762.      change the width, height and depth of an image. The result is put
  4763.      in the MULTIVALUEINFO. stem:
  4764.  
  4765.           REQUEST_MULTIVALUE "Width" "640" "Height" "480",
  4766.              STEM MULTIVALUEINFO.
  4767.  
  4768.      The following puts up a multivalue requester, allowing the user to
  4769.      change the name and depth of an image. The result is put displayed
  4770.      in a message requester and the values recycled until the user can
  4771.      cels the requesters:
  4772.  
  4773.           INSTRINGS = 'Name ImageName.bmp Depth 4'
  4774.           
  4775.           do forever
  4776.              REQUEST_MULTIVALUE STRINGS INSTRINGS STEM MULTIVALUEINFO.
  4777.           
  4778.              REQUEST_MESSAGE TEXT BUTTONTEXT "OK|Cancel" AUTOCANCEL,
  4779.                 TEXT '"Name: '||MULTIVALUEINFO.STRINGS.1||'\n'||,
  4780.                 'Depth : '||MULTIVALUEINFO.STRINGS.3||'"'
  4781.           
  4782.              /* Construct the new INSTRINGS */
  4783.           
  4784.              INSTRINGS = ''
  4785.           
  4786.              do l = 0 to (MULTIVALUEINFO.STRINGS.COUNT - 1)
  4787.                 INSTRINGS = INSTRINGS||' '||MULTIVALUEINFO.STRINGS.l
  4788.                 end
  4789.           
  4790.              end
  4791.  
  4792. Known bugs
  4793.      None.
  4794.  
  4795. REQUEST_SCREENMODE
  4796. ------------------
  4797.  
  4798. Command
  4799.      REQUEST_SCREENMODE
  4800.  
  4801. Parameters template
  4802.      MODEID/N, WIDTH/N, HEIGHT/N, OVERSCAN/N, DEPTH/N,
  4803.      GADS_ENABLED/S, MAXDEPTH/N, MINWIDTH/N, MINHEIGHT/N
  4804.  
  4805. Return template
  4806.      MODEID/N, WIDTH/N, HEIGHT/N, OVERSCAN/N, DEPTH/N, TEXT
  4807.  
  4808. Description
  4809.      Opens a screenmode requester, allowing the user to select an Amiga
  4810.      screenmode. By specifying the GADS_ENABLED, the user may also
  4811.      select the width, height, depth and overscan values for the
  4812.      screenmode.
  4813.  
  4814.      The other ImageStudio windows are automatically blocked when the
  4815.      requester is opened and unblocked when the requester is closed.
  4816.  
  4817.      In common with all ImageStudio requesters, if the user presses
  4818.      `Cancel', an error message is returned. For the script to trap this
  4819.      error, global error checking must be turned off. See Error
  4820.      checking, for more information.
  4821.  
  4822. Parameters
  4823.     MODEID/N
  4824.           The default screenmode ID for the requester which will be
  4825.           selected in the requester. By default, LORES is selected.
  4826.  
  4827.     WIDTH/N
  4828.           The default screen width value to put in the requester. By
  4829.           default, the default width of the selected screenmode is used.
  4830.  
  4831.     HEIGHT/N
  4832.           The default screen height value to put in the requester. By
  4833.           default, the default height of the selected screenmode is
  4834.           used.
  4835.  
  4836.     OVERSCAN/N
  4837.           The default overscan value to put in the requester. The
  4838.           following values are valid: 1 for text size, 2 for graphics
  4839.           size, 3 for extreme and 4 for maximum overscan. By default,
  4840.           text size is used.
  4841.  
  4842.     DEPTH/N
  4843.           The default depth value to put in the requester. By default,
  4844.           a depth of 2 is used.
  4845.  
  4846.     GADSENABLED/S
  4847.           By default the screenmode requester only allows the selecting
  4848.           of the screenmode. By using this switch, the user may also
  4849.           set the width, height, overscan and depth of the screenmode.
  4850.  
  4851.     MAXDEPTH/N
  4852.           The maximum depth allowed by the depth gadget. This value is
  4853.           only relevant to the internal screenmode requester.
  4854.  
  4855.     MINWIDTH/N
  4856.           The minimum allowable width of the screenmode.
  4857.  
  4858.     MINHEIGHT/N
  4859.           The minimum allowable height of the screenmode.
  4860.  
  4861. Returns
  4862.     MODEID/N
  4863.           The chosen screenmode ID.
  4864.  
  4865.     WIDTH/N
  4866.           The screen width chosen in the requester. This value is only
  4867.           set if the GADSENABLED switch is used.
  4868.  
  4869.     HEIGHT/N
  4870.           The screen height chosen in the requester. This value is only
  4871.           set if the GADSENABLED switch is used.
  4872.  
  4873.     OVERSCAN/N
  4874.           The overscan value chosen in the requester. The following
  4875.           values are returned: 1 for text size, 2 for graphics size, 3
  4876.           for extreme and 4 for maximum overscan. This value is only
  4877.           set if the GADSENABLED switch is used.
  4878.  
  4879.     DEPTH/N
  4880.           The depth value chosen in the requester. This value is only
  4881.           set if the GADSENABLED switch is used.
  4882.  
  4883.     TEXT
  4884.           A text description of the screenmode chosen.
  4885.  
  4886. Errors
  4887.      rc = 0 if the operation was successful.
  4888.  
  4889.      rc = 10 if the operation failed for any reason or the user
  4890.      cancelled requester, rc2 will contain a string describing the
  4891.      problem.
  4892.  
  4893. Example
  4894.      The following puts up a screenmode requester, the result is put in
  4895.      the SCREENMODEINFO. stem:
  4896.  
  4897.           REQUEST_SCREENMODE STEM SCREENMODEINFO.
  4898.  
  4899.      The following puts up a screenmode requester, complete with the
  4900.      width, height, depth and overscan gadgets. The chosen screenmode
  4901.      text is put in a message requester:
  4902.  
  4903.           REQUEST_SCREENMODE GADSENABLED STEM SCREENMODEINFO.
  4904.           
  4905.           REQUEST_MESSAGE TEXT '"'SCREENMODEINFO.TEXT'"'
  4906.  
  4907. Known bugs
  4908.        1. There are two screenmode requesters that can be used by
  4909.           ImageStudio.  If ImageStudio is running on a Workbench2.1+
  4910.           Amiga the system ASL screenmode requester is used, if the
  4911.           Workbench2.04 is running then ImageStudio will use its
  4912.           internal screenmode requester (Workbench2.04 doesn't have an
  4913.           ASL screenmode requester). Because of the two different
  4914.           requesters and the complex way in which the Amiga deals with
  4915.           screenmodes, the operation of the two can be subtly dif
  4916.           ferent.
  4917.  
  4918.           The most noticeable difference is in the handling of the
  4919.           Amiga's built in screenmodes. A built in screenmode is
  4920.           something like "LoRes" or "HighRes Interlaced" as opposed to
  4921.           a disk based screen mode like "MULTISCAN:Productivity" or
  4922.           "SUPER72:High Res".
  4923.  
  4924.           If you choose a built in screenmode in the ASL screenmode
  4925.           requester, the requester will return the screenmode ID
  4926.           something like "PAL:LoRes". This means that the requester
  4927.           specifies that the screenmode is "LoRes" and the monitor to
  4928.           be used is "PAL" (or "NTSC" in America). If you choose a
  4929.           built in screenmode in the internal screenmode requester, the
  4930.           requester will return the screenmode ID something like
  4931.           "LoRes", i.e. *it doesn't specify the monitor to be used*.
  4932.  
  4933.           This is not usually a problem, but we feel that our
  4934.           screenmode re quester may be more compatible with older
  4935.           software which doesn't un derstand the system of specifying
  4936.           the monitor in the screenmode.
  4937.  
  4938.           The matter is further complicated if you are using a monitor
  4939.           with mode promotion. Here, the internal screenmode
  4940.           requester's screen modes are promoted to the new double
  4941.           scanning modes (e.g. "HighRes" gets promoted to
  4942.           "DBLPAL:HighRes"). The ASL screenmodes *aren't* promoted, as
  4943.           they already contain the desired monitor information in the
  4944.           screenmode. This feature is either "desirable" or
  4945.           "undesirable" depending on your point of view. If you've ever
  4946.           wondered why some screenmodes don't promote, this is why -
  4947.           they have been told to be specifically "PAL" or "NTSC" in
  4948.           their screenmode.
  4949.  
  4950.           If major problems are found in the differences between the
  4951.           internal and ASL screenmode requesters, we will endevour to
  4952.           alter the inter nal screenmode requester, but we think this
  4953.           is unlikely to cause any real problems.
  4954.  
  4955.        2. To be safe in selecting a mode, you should always click on it
  4956.           in the requester. When you pass a default screenmode, the
  4957.           mode highlighted in the requester may not be exactly the same
  4958.           as the default screen mode given - it may be an equivalent.
  4959.           Clicking on the screenmode en sures that it returns that
  4960.           mode's real ID.
  4961.  
  4962. REQUEST_STRING
  4963. --------------
  4964.  
  4965. Command
  4966.      REQUEST_STRING
  4967.  
  4968. Parameters template
  4969.      TEXT1, TEXT2, TEXT3, STRING, TITLE
  4970.  
  4971. Return template
  4972.      STRING
  4973.  
  4974. Description
  4975.      Opens a string requester, allowing the user to type in one line of
  4976.      text.
  4977.  
  4978.      If a filename or directory name is required, it is suggested that
  4979.      either a special file or directory requester is used instead.
  4980.  
  4981.      The other ImageStudio windows are automatically blocked when the
  4982.      requester is opened and unblocked when the requester is closed.
  4983.  
  4984.      In common with all ImageStudio requesters, if the user presses
  4985.      `Cancel', an error message is returned. For the script to trap this
  4986.      error, global error checking must be turned off. See Error
  4987.      checking, for more information.
  4988.  
  4989. Parameters
  4990.     TEXT1
  4991.           The top line of description text in the requester. The text
  4992.           will be left justified.
  4993.  
  4994.     TEXT2
  4995.           The middle line of description text in the requester. The
  4996.           text will be left justified.
  4997.  
  4998.     TEXT3
  4999.           The bottom line of description text in the requester. The
  5000.           text will be left justified.
  5001.  
  5002.     STRING
  5003.           The default string to be used in the requester.
  5004.  
  5005.     TITLE
  5006.           The text for the title bar of the requester.
  5007.  
  5008. Returns
  5009.     STRING
  5010.           The string in the requester.
  5011.  
  5012. Errors
  5013.      rc = 0 if the operation was successful.
  5014.  
  5015.      rc = 10 if the operation failed for any reason or the user
  5016.      cancelled requester, rc2 will contain a string describing the
  5017.      problem.
  5018.  
  5019. Example
  5020.      The following puts up a string requester, allowing the user to type
  5021.      in some text. The returned string is put in RESULT:
  5022.  
  5023.           REQUEST_STRING TEXT2 '"Enter some text"'
  5024.  
  5025.      The following puts up a string requester with a default string of
  5026.      "A raytraced image". The description text is displayed over 3
  5027.      lines:
  5028.  
  5029.           REQUEST_STRING TEXT1 '"Enter the"' TEXT2 '"desired name"',
  5030.              TEXT3 '"for the image"' STRING '"A raytraced image"'
  5031.  
  5032. Known bugs
  5033.      None.
  5034.  
  5035. RGB_TO_HSV
  5036. ----------
  5037.  
  5038. Command
  5039.      RGB_TO_HSV
  5040.  
  5041. Parameters template
  5042.      R/N/A, G/N/A, B/N/A
  5043.  
  5044. Return template
  5045.      H/N, S/N, V/N
  5046.  
  5047. Description
  5048.      Converts a RGB colour value into a HSV colour value.
  5049.  
  5050.      See Colour representations, for more details on RGB and HSV col
  5051.      our representations.
  5052.  
  5053. Parameters
  5054.     R/N/A
  5055.           The red value of the colour to convert. Valid values are 0 to
  5056.           255.
  5057.  
  5058.     G/N/A
  5059.           The green value of the colour to convert. Valid values are 0
  5060.           to 255.
  5061.  
  5062.     B/N/A
  5063.           The red of the colour to convert. Valid values are 0 to 255.
  5064.  
  5065. Returns
  5066.     H/N
  5067.           The hue componant value of the colour.
  5068.  
  5069.     S/N
  5070.           The saturation componant value of the colour.
  5071.  
  5072.     V/N
  5073.           The value componant of the colour.
  5074.  
  5075. Errors
  5076.      rc = 0 if the operation was successful.
  5077.  
  5078.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5079.      string describing the problem.
  5080.  
  5081. Example
  5082.      The following converts yellow from RGB to HSV representation,
  5083.      putting the result in RESULT:
  5084.  
  5085.           RGB_TO_HSV 255 255 0
  5086.  
  5087.      The following converts mid-grey from RGB to HSV representation,
  5088.      putting the result in the stem COLOUR.:
  5089.  
  5090.           RGB_TO_HSV 127 127 127 STEM COLOUR.
  5091.  
  5092. Known bugs
  5093.      None.
  5094.  
  5095. SAVE
  5096. ----
  5097.  
  5098. Command
  5099.      SAVE
  5100.  
  5101. Parameters template
  5102.      FILE/A, FORMAT, ARGS, FORCE/S
  5103.  
  5104. Return template
  5105.      None.
  5106.  
  5107. Description
  5108.      Saves the current image out to disk.
  5109.  
  5110.      See Save, for more details on saving images.
  5111.  
  5112. Parameters
  5113.     FILE/A
  5114.           The filename of the file to save.
  5115.  
  5116.     FORMAT
  5117.           The string containing the format of the file to save. By
  5118.           default, images are saved out as IFF-ILBM. See File formats,
  5119.           for more in formation on the available file formats.
  5120.  
  5121.     ARGS
  5122.           Any extra arguments that should be passed to the saver.
  5123.  
  5124.     FORCE/S
  5125.           By default the user will be warned if they are about to
  5126.           overwrite a file on the disk. Specifying this switch will
  5127.           stop such warnings.
  5128.  
  5129. Returns
  5130.      Nothing.
  5131.  
  5132. Errors
  5133.      rc = 0 if the operation was successful.
  5134.  
  5135.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5136.      string describing the problem.
  5137.  
  5138. Example
  5139.      The following saves the current image out as an IFF-ILBM:
  5140.  
  5141.           SAVE FILE "ram:Image.ilbm"
  5142.  
  5143.      The following saves the current image out as an IFF-ILBM, HAM6:
  5144.  
  5145.           SAVE FILE "ram:Image.ham6" ARGS '"SUBFORMAT HAM6"'
  5146.  
  5147.      The following saves out the current image as a JPEG, with a quality
  5148.      setting of 90:
  5149.  
  5150.           SAVE FILE "ram:Image.jpg" FORMAT "JPEG" ARGS '"QUALITY 90"'
  5151.  
  5152. Known bugs
  5153.      None.
  5154.  
  5155. SCALE
  5156. -----
  5157.  
  5158. Command
  5159.      SCALE
  5160.  
  5161. Parameters template
  5162.      X/N, Y/N, PERCENT/S, METHOD
  5163.  
  5164. Return template
  5165.      None.
  5166.  
  5167. Description
  5168.      Scales the current image either up or down using different methods
  5169.      optimised for speed or quality.
  5170.  
  5171.      The user need not specify both X and Y scales, so scaling an image
  5172.      to only alter its width or height is possible.
  5173.  
  5174.      See Scale, for more details on scaling images.
  5175.  
  5176. Parameters
  5177.     X/N
  5178.           Amount to scale the image in X (width) direction. By default
  5179.           this value is an absolute value in pixels, but by specifying
  5180.           the PERCENT option this value can be read as a percentage of
  5181.           the image's current width.
  5182.  
  5183.     Y/N
  5184.           Amount to scale the image in Y (height) direction. By default
  5185.           this value is an absolute value in pixels, but by specifying
  5186.           the PERCENT option this value can be read as a percentage of
  5187.           the image's current height.
  5188.  
  5189.     PERCENT
  5190.           Reads the X and Y values as percentages of the image's
  5191.           current width and height.
  5192.  
  5193.     METHOD
  5194.           A string describing the method of scaling to use. By default,
  5195.           FAST is used but AVERAGE can provide higher quality scales on
  5196.           24bit images at the cost of computing time.
  5197.  
  5198. Returns
  5199.      Nothing.
  5200.  
  5201. Errors
  5202.      rc = 0 if the operation was successful.
  5203.  
  5204.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5205.      string describing the problem.
  5206.  
  5207. Example
  5208.      The following scales the image to 800 by 600 pixels:
  5209.  
  5210.           SCALE 800 600
  5211.  
  5212.      The following doubles the size of the image:
  5213.  
  5214.           SCALE 200 200 PERCENT
  5215.  
  5216.      The following halves the height of the image, using colour average
  5217.      scaling:
  5218.  
  5219.           SCALE Y 50 PERCENT METHOD "AVERAGE"
  5220.  
  5221. Known bugs
  5222.      None.
  5223.  
  5224. SCREEN_BACK
  5225. -----------
  5226.  
  5227. Command
  5228.      SCREEN_BACK
  5229.  
  5230. Parameters template
  5231.      None.
  5232.  
  5233. Return template
  5234.      None.
  5235.  
  5236. Description
  5237.      Moves the ImageStudio screen behind all other open screens.
  5238.  
  5239. Parameters
  5240.      None.
  5241.  
  5242. Returns
  5243.      Nothing.
  5244.  
  5245. Errors
  5246.      rc = 0 if the operation was successful.
  5247.  
  5248.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5249.      string describing the problem.
  5250.  
  5251. Example
  5252.      The following moves ImageStudio's screen behind all other open
  5253.      screens:
  5254.  
  5255.           SCREEN_BACK
  5256.  
  5257. Known bugs
  5258.      None.
  5259.  
  5260. SCREEN_FRONT
  5261. ------------
  5262.  
  5263. Command
  5264.      SCREEN_FRONT
  5265.  
  5266. Parameters template
  5267.      None.
  5268.  
  5269. Return template
  5270.      None.
  5271.  
  5272. Description
  5273.      Moves the ImageStudio screen in front of all other open screens.
  5274.  
  5275. Parameters
  5276.      None.
  5277.  
  5278. Returns
  5279.      Nothing.
  5280.  
  5281. Errors
  5282.      rc = 0 if the operation was successful.
  5283.  
  5284.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5285.      string describing the problem.
  5286.  
  5287. Example
  5288.      The following moves ImageStudio's screen in front of all other open
  5289.      screens:
  5290.  
  5291.           SCREEN_FRONT
  5292.  
  5293. Known bugs
  5294.      None.
  5295.  
  5296. SELECT_ALL
  5297. ----------
  5298.  
  5299. Command
  5300.      SELECT_ALL
  5301.  
  5302. Parameters template
  5303.      None.
  5304.  
  5305. Return template
  5306.      None.
  5307.  
  5308. Description
  5309.      Sets the current region to the whole of the image being displayed
  5310.      in the preview window.
  5311.  
  5312.      Note that this doesn't always select the whole image; if the user
  5313.      has zoomed in on a region, only this region will be selected. If
  5314.      you want to be sure of selecting the whole image, issue a
  5315.      FULL_IMAGE command first.
  5316.  
  5317. Parameters
  5318.      None.
  5319.  
  5320. Returns
  5321.      Nothing.
  5322.  
  5323. Errors
  5324.      rc = 0 if the operation was successful.
  5325.  
  5326.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5327.      string describing the problem.
  5328.  
  5329. Example
  5330.      The following selects the whole of the currently viewed image:
  5331.  
  5332.           SELECT_ALL
  5333.  
  5334. Known bugs
  5335.      None.
  5336.  
  5337. UNDO
  5338. ----
  5339.  
  5340. Command
  5341.      UNDO
  5342.  
  5343. Parameters template
  5344.      None.
  5345.  
  5346. Return template
  5347.      None.
  5348.  
  5349. Description
  5350.      Un-does the last operation (see ARexx_REDO).
  5351.  
  5352. Parameters
  5353.      None.
  5354.  
  5355. Returns
  5356.      Nothing.
  5357.  
  5358. Errors
  5359.      rc = 0 if the operation was successful.
  5360.  
  5361.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5362.      string describing the problem.
  5363.  
  5364. Example
  5365.      The following un-does the last operation:
  5366.  
  5367.           UNDO
  5368.  
  5369. Known bugs
  5370.      None.
  5371.  
  5372. VIEW
  5373. ----
  5374.  
  5375. Command
  5376.      VIEW
  5377.  
  5378. Parameters template
  5379.      EXTERNAL/S
  5380.  
  5381. Return template
  5382.      None.
  5383.  
  5384. Description
  5385.      Views the current image using either the internal or external
  5386.      viewer.
  5387.  
  5388. Parameters
  5389.     EXTERNAL/S
  5390.           By default the image is shown using the internal viewer,
  5391.           however by including this parameter the external viewer as
  5392.           defined in the preferences (see Prefs) will be used.
  5393.  
  5394. Returns
  5395.      Nothing.
  5396.  
  5397. Errors
  5398.      rc = 0 if the operation was successful.
  5399.  
  5400.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5401.      string describing the problem.
  5402.  
  5403. Example
  5404.      The following views the current image using the internal viewer:
  5405.  
  5406.           VIEW
  5407.  
  5408.      The following views the current image using the external viewer:
  5409.  
  5410.           VIEW EXTERNAL
  5411.  
  5412. Known bugs
  5413.      None.
  5414.  
  5415. ZOOM_IN
  5416. -------
  5417.  
  5418. Command
  5419.      ZOOM_IN
  5420.  
  5421. Parameters template
  5422.      None.
  5423.  
  5424. Return template
  5425.      None.
  5426.  
  5427. Description
  5428.      Zooms in to the currently selected region in the preview window.
  5429.  
  5430.      A region has to be selected in order for this command to work.
  5431.  
  5432. Parameters
  5433.      None.
  5434.  
  5435. Returns
  5436.      Nothing.
  5437.  
  5438. Errors
  5439.      rc = 0 if the operation was successful.
  5440.  
  5441.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5442.      string describing the problem.
  5443.  
  5444. Example
  5445.      The following zooms in to the currently selected region:
  5446.  
  5447.           ZOOM_IN
  5448.  
  5449. Known bugs
  5450.      None.
  5451.  
  5452. ZOOM_OUT
  5453. --------
  5454.  
  5455. Command
  5456.      ZOOM_OUT
  5457.  
  5458. Parameters template
  5459.      None.
  5460.  
  5461. Return template
  5462.      None.
  5463.  
  5464. Description
  5465.      Zooms out by a factor of 3 times in the preview window.
  5466.  
  5467. Parameters
  5468.      None.
  5469.  
  5470. Returns
  5471.      Nothing.
  5472.  
  5473. Errors
  5474.      rc = 0 if the operation was successful.
  5475.  
  5476.      rc = 10 if the operation failed for any reason, rc2 will contain a
  5477.      string describing the problem.
  5478.  
  5479. Example
  5480.      The following zooms out by a factor of 3 times in the preview
  5481.      window:
  5482.  
  5483.           ZOOM_OUT
  5484.  
  5485. Known bugs
  5486.      None.
  5487.  
  5488. Reference
  5489. *********
  5490.  
  5491.    This chapter gives detailed explanations about various aspects of
  5492. the program.
  5493.  
  5494. File formats
  5495. ============
  5496.  
  5497.    Select the file format you wish to investigate.
  5498.  
  5499. IFF-ILBM
  5500. --------
  5501.  
  5502. Name
  5503.      IFF-ILBM
  5504.  
  5505. Load types
  5506.      Colour mapped, 24 bit, HAM6, HAM8, Extra halfbright.
  5507.  
  5508.      Compressed and uncompressed.
  5509.  
  5510. Save types
  5511.      Colour mapped, 24 bit, HAM6, HAM8, Extra halfbright.
  5512.  
  5513.      Compressed and uncompressed.
  5514.  
  5515. Description
  5516.      IFF-ILBM is the Amiga's native bitmap graphic file format.
  5517.  
  5518.      IFF-ILBM files are usually compressed using simple run-length
  5519.      compression, but they can be uncompressed for simplicity and speed.
  5520.  
  5521.      IFF-ILBM is ImageStudio's default save format.
  5522.  
  5523.      ImageStudio will load and save AGA images on a non-AGA machine.
  5524.  
  5525.      The original image's screenmode will be preserved, unless changed
  5526.      by the user (see View_screenmode).
  5527.  
  5528. ARexx OPEN command ARGS
  5529.      None.
  5530.  
  5531. ARexx SAVE command ARGS
  5532.      SUBFORMAT, DITHER, NOCOMPRESSION/S
  5533.  
  5534.     SUBFORMAT
  5535.           By default the image is saved out as the buffer, i.e. either
  5536.           a 2 to 256 colour colour-mapped image or as 24bit. By
  5537.           specifying the SUB FORMAT parameter, the user can select
  5538.           HAM6, HAM8 or EHB as extra save formats. The image will be
  5539.           converted into the chosen subformat before saving. The image
  5540.           in ImageStudio remains unchanged.
  5541.  
  5542.     DITHER
  5543.           If the SUBFORMAT option is used, DITHER can be set to FS to
  5544.           give Floyd-Steinberg dithering of the HAM6, HAM8 or EHB image.
  5545.  
  5546.     NOCOMPRESSION/S
  5547.           By default the IFF-ILBM image is compressed using simple
  5548.           run-length compression. Use this switch to save uncompressed
  5549.           data.
  5550.  
  5551. Example
  5552.      The following saves out the current image in the same format as the
  5553.      buffer:
  5554.  
  5555.           SAVE FILE "Image.ilbm"
  5556.  
  5557.      The following saves out the image as HAM6:
  5558.  
  5559.           SAVE FILE "Image.ilbm" ARGS '"SUBFORMAT HAM6"'
  5560.  
  5561.      The following saves out the image as Floyd-Steinberg dithered Extra
  5562.      halfbright:
  5563.  
  5564.           SAVE FILE "Image.ilbm" ARGS '"SUBFORMAT EHB DITHER FS"'
  5565.  
  5566. BMP
  5567. ---
  5568.  
  5569. Name
  5570.      BMP
  5571.  
  5572. Load types ("Windows" and "OS/2" format).
  5573.      Colour mapped, 24 bit.
  5574.  
  5575. Save types
  5576.      Colour mapped, 24 bit ("Windows" format).
  5577.  
  5578. Description
  5579.      BMP files are commonly found on PCs running Microsoft Windows.
  5580.  
  5581.      BMP images are usually uncompressed and come in 2 flavours -
  5582.      `Windows' and `OS/2'.
  5583.  
  5584. ARexx OPEN command ARGS
  5585.      None.
  5586.  
  5587. ARexx SAVE command ARGS
  5588.      None.
  5589.  
  5590. Example
  5591.      None.
  5592.  
  5593. Datatype
  5594. --------
  5595.  
  5596. Name
  5597.      Datatype
  5598.  
  5599. Load types
  5600.      Colour mapped.
  5601.  
  5602. Save types
  5603.      None.
  5604.  
  5605. Description
  5606.      The datatype IO module will use any datatypes installed on the
  5607.      system to try and load the image. The datatype loader will only
  5608.      work with Workbench3.0 and above.
  5609.  
  5610.      Datatypes are a poor way of loading images into ImageStudio, for
  5611.      the following reasons:
  5612.  
  5613.        1. Datatypes are slow. First the datatype has to convert the
  5614.           image into its internal format, then ImageStudio has to
  5615.           convert this to ImageStudio's internal format.
  5616.  
  5617.        2. Datatypes cannot handle more than 256 colours. Any 24bit
  5618.           image for mats are converted by the datatype to 256 colours
  5619.           (or less) which will cause a loss in quality.
  5620.  
  5621.        3. Datatypes cannot use the progress bar whilst converting the
  5622.           incomming image. It is therefore not possible to stop a
  5623.           datatype loading an image during this first phase.
  5624.  
  5625.      Because of these problems, ImageStudio will only try the datatype
  5626.      loader as a "last resort" - trying its own loaders before attempt
  5627.      ing to the use the datatype module.
  5628.  
  5629.      During testing we have found a few datatypes that cause problems
  5630.      with odd subformats of certain formats. Obviously, ImageStudio has
  5631.      no control over the quality of the datatypes installed on the
  5632.      system.
  5633.  
  5634. ARexx OPEN command ARGS
  5635.      None.
  5636.  
  5637. ARexx SAVE command ARGS
  5638.      None.
  5639.  
  5640. Known bugs
  5641.      The datatype loader currently doesn't handle datatypes which return
  5642.      HAM (HAM6 or HAM8) images.
  5643.  
  5644. Example
  5645.      None.
  5646.  
  5647. EPS
  5648. ---
  5649.  
  5650. Name
  5651.      EPS
  5652.  
  5653. Load types
  5654.      None.
  5655.  
  5656. Save types
  5657.      Greyscale, 24 bit.
  5658.  
  5659. Description
  5660.      EPS files are ASCII text files written in the PostScript language.
  5661.      They can be printed out directly to a PostScript printer or
  5662.      imported into word processing or DTP packages.
  5663.  
  5664.      EPS files are an ineffecient method of storing files, as they are
  5665.      uncompressed and are stored as ASCII text as opposed to binary
  5666.      data.  Unless colour is specifically required it is recommended
  5667.      that EPS files be saved in the greyscale format, as they are one
  5668.      third of the size of a colour EPS file.
  5669.  
  5670. ARexx OPEN command ARGS
  5671.      None.
  5672.  
  5673. ARexx SAVE command ARGS
  5674.      DPI/N, COLOUR
  5675.  
  5676.     DPI/N
  5677.           The resolution of the image in dots per inch. By default, 300
  5678.           dpi is used.
  5679.  
  5680.     COLOUR
  5681.           By default the output image is 256 greyscale. Specifying this
  5682.           option outputs the image as 24bit colour.
  5683.  
  5684. Example
  5685.      The following saves out a COLOUR EPS file:
  5686.  
  5687.           SAVE FILE "Image.eps" FORMAT "EPS" ARGS "COLOUR"
  5688.  
  5689.      The following saves out a 600 by 300 file at 150 dpi, given a print
  5690.      able size of 4inches by 2inch:
  5691.  
  5692.           SAVE FILE "Image.eps" FORMAT "EPS" ARGS '"DPI 150"'
  5693.  
  5694. GIF
  5695. ---
  5696.  
  5697. Name
  5698.      GIF
  5699.  
  5700. Load types
  5701.      Colour mapped ("GIF87a" and "GIF89a" formats).
  5702.  
  5703. Save types
  5704.      Colour mapped ("GIF87a" and "GIF89a" formats).
  5705.  
  5706. Description
  5707.      GIF is a common format for images upto 256 colours.
  5708.  
  5709.      GIF is a trademark of Compuserve Incorporated.
  5710.  
  5711.      GIF images are normally smaller than their equivalent IFF-ILBM
  5712.      counterparts due to GIF's LZW compression algorithm. GIF files are
  5713.      always compressed.
  5714.  
  5715.      GIF comes in 2 flavours - `GIF87a' and `GIF89a'. GIF87a is the most
  5716.      popular format; ImageStudio will load in both GIF87a and GIF89a.
  5717.  
  5718. ARexx OPEN command ARGS
  5719.      None.
  5720.  
  5721. ARexx SAVE command ARGS
  5722.      SUBFORMAT,INTERLACED/S,TRANSPARENCY/S,TRANSPCOLOUR/N
  5723.  
  5724.     SUBFORMAT
  5725.           By default GIF files are saved as the popular GIF87a format.
  5726.           By selecting a subformat of GIF89A, the user may include extra
  5727.           information in the file (e.g. transparent colour information).
  5728.           Specifying a subformat of GIF89a alone provides no extra
  5729.           functionality.
  5730.  
  5731.     INTERLACED/S
  5732.           By default the information in a GIF file is saved in a
  5733.           sequential fashion (e.g. line 1,line 2,line 3...). By
  5734.           specifying this switch the image in saved in a series of
  5735.           interlaced passes which can give faster redraws on some
  5736.           viewers (e.g. World Wide Web browsers).  Both GIF87A and
  5737.           GIF89A support interlacing.
  5738.  
  5739.           Note: This interlace has nothing to do with the Amiga's
  5740.           interlaced screens.
  5741.  
  5742.     TRANSPARENCY/S
  5743.           By specifying this switch, one colour out of the image's
  5744.           pallete can be made `transparent', causing the background
  5745.           colour to show through. This again can be useful with World
  5746.           Wide Web browsers. By default, the transparent colour is
  5747.           colour 0, but this can be changed (see below). This switch is
  5748.           only used in the GIF89A subformat.
  5749.  
  5750.     TRANSPCOLOUR/N
  5751.           This is the palette entry number that is made transparent if
  5752.           the TRANSPARENT switch is used. This value is only used in
  5753.           the GIF89A subformat.
  5754.  
  5755. Example
  5756.      The following saves out a standard GIF87a format file:
  5757.  
  5758.           SAVE FILE "Image.gif" FORMAT "GIF"
  5759.  
  5760.      The following saves out a GIF87a file with interlace:
  5761.  
  5762.           SAVE FILE "Image.gif" FORMAT "GIF" ARGS "INTERLACED"
  5763.  
  5764.      The following saves out a GIF89a file with a transparent colour of
  5765.      10:
  5766.  
  5767.           SAVE FILE "Image.gif" FORMAT "GIF",
  5768.              ARGS "SUBFORMAT GIF89A TRANSPARENCY TRANSPCOLOUR 10"
  5769.  
  5770. IFF-DEEP
  5771. --------
  5772.  
  5773. Name
  5774.      IFF-DEEP
  5775.  
  5776. Load types
  5777.      24 bit uncompressed.
  5778.  
  5779. Save types
  5780.      24 bit uncompressed.
  5781.  
  5782. Description
  5783.      The IFF-DEEP format a fast way of storing 24bit data in a IFF
  5784.      format file.
  5785.  
  5786.      IFF-DEEP files can be compressed, but ImageStudio currently only
  5787.      supports the loading and saving of the common uncompressed format.
  5788.      Saving a colour mapped image as IFF-DEEP will cause the image to be
  5789.      promoted to 24bits and the colour map information to be lost.
  5790.  
  5791. ARexx OPEN command ARGS
  5792.      None.
  5793.  
  5794. ARexx SAVE command ARGS
  5795.      None.
  5796.  
  5797. Example
  5798.      The following saves out an IFF-DEEP file:
  5799.  
  5800.           SAVE FILE "Image.deep" FORMAT "IFF-DEEP"
  5801.  
  5802. JPEG
  5803. ----
  5804.  
  5805. Name
  5806.      JPEG
  5807.  
  5808. Load types
  5809.      Greyscale, 24 bit ("JFIF" format).
  5810.  
  5811. Save types
  5812.      Greyscale, 24 bit ("JFIF" format).
  5813.  
  5814. Description
  5815.      JPEG allows the storage of 24-bit images as very small files due to
  5816.      its lossy compression algorithm. Whereas the compression algorithms
  5817.      used by other file formats loose none of the image information,
  5818.      JPEG trades off a little loss in image quality for a high degree of
  5819.      compression.
  5820.  
  5821.      As JPEG is a relatively new format, an exact format of the JPEG
  5822.      file was only agreed on recently. This format is called `JFIF' and
  5823.      these are the most commonly used JPEG format files - and the
  5824.      format that ImageStudio loads and saves. It is highly unlikely
  5825.      that any old JPEG files are still being circulated, but should you
  5826.      find one it is uncertain whether ImageStudio would accept it.
  5827.  
  5828.      A high degree of compatibility is obtained with our JPEG loader /
  5829.      saver routines, as they are based in part on the work of the
  5830.      Independant JPEG group's routines.
  5831.  
  5832. ARexx OPEN command ARGS
  5833.      None.
  5834.  
  5835. ARexx SAVE command ARGS
  5836.      QUALITY/N, GREYSCALE/S
  5837.  
  5838.     QUALITY/N
  5839.           The quality of the jpeg output file. A quality value of 75 is
  5840.           given by default, resulting in an acceptable degredation of
  5841.           image quality.  For higher degree of compression choose a
  5842.           lower value(1). For a higher degree of quality, choose a
  5843.           higher value; values of 85 to 90 result in an almost
  5844.           unnoticable loss of quality.
  5845.  
  5846.     GREYSCALE/S
  5847.           By default the JPEG output is 24bit colour. By using this
  5848.           option, the image can also be saved in a greyscale format,
  5849.           where the colour information is lost but the output file size
  5850.           is correspondingly smaller.
  5851.  
  5852. Example
  5853.      The following saves out the current image as JPEG:
  5854.  
  5855.           SAVE FILE "Image.jpg" FORMAT "JPEG"
  5856.  
  5857.      The following saves out the current image as JPEG, with a high
  5858.      degree of compression:
  5859.  
  5860.           SAVE FILE "Image.jpg" FORMAT "JPEG" ARGS '"QUALITY 50"'
  5861.  
  5862.      The following saves out the current image as greyscale JPEG:
  5863.  
  5864.           SAVE FILE "Image.jpg" FORMAT "JPEG" ARGS '"GREYSCALE"'
  5865.  
  5866.    ---------- Footnotes ----------
  5867.  
  5868.    (1)  Values less than 25 may cause problems with some JPEG readers
  5869.  
  5870. PCX
  5871. ---
  5872.  
  5873. Name
  5874.      PCX
  5875.  
  5876. Load types
  5877.      Colour mapped (2 to 16, 256 colours), 24 bit.
  5878.  
  5879. Save types
  5880.      Colour mapped (256 colours), 24 bit.
  5881.  
  5882. Description
  5883.      PCX files are commonly found on PCs running Microsoft Windows.
  5884.  
  5885.      PCX files are always compressed using a very inefficient run-length
  5886.      encoding algorithm. This algorithm can, in some cases, lead to an
  5887.      increase in file size over an uncompressed image. PCX is included
  5888.      in ImageStudio for compatibility with other platforms, but we do
  5889.      not recommend the general storing of images in this format.
  5890.  
  5891.      ImageStudio only saves 256 colour PCX files as these are the most
  5892.      compatible accross programs. The specification is a little vague as
  5893.      to how to handle 2 to 16 colour PCX files.
  5894.  
  5895. ARexx OPEN command ARGS
  5896.      None.
  5897.  
  5898. ARexx SAVE command ARGS
  5899.      None.
  5900.  
  5901. Example
  5902.      None.
  5903.  
  5904. PNG
  5905. ---
  5906.  
  5907. Name
  5908.      PNG
  5909.  
  5910. Load types
  5911.      Colour mapped, 24, 32 and 48bits.
  5912.  
  5913. Save types
  5914.      Colour mapped, 24bit.
  5915.  
  5916. Description
  5917.      PNG is the license free replacement for the GIF file format.
  5918.  
  5919.      After the controversy with the LZW compression algorithm used in
  5920.      the GIF file format, it was decided that a new standard should be
  5921.      created which uses the license free LZ compression algorithm along
  5922.      with many improvments over the GIF file format (e.g. support for
  5923.      24bit images). PNG is that format, and supports many advanced
  5924.      features to obtain the best lossless compression for any type of
  5925.      bitmap image.  PNG also supports features that will find
  5926.      themselves useful in World Wide Web browsers, etc...
  5927.  
  5928.      A high degree of compatibility is obtained with our PNG
  5929.      loader/saver, as it is based in part on the PNGlib code by Group42.
  5930.  
  5931. ARexx OPEN command ARGS
  5932.      None.
  5933.  
  5934. ARexx SAVE command ARGS
  5935.      INTERLACE,TRANSPARENCY/S,TRANSPCOLOUR/N
  5936.  
  5937.     INTERLACE
  5938.           By default PNG files are not interlaced, however by
  5939.           specifying an INTERLACE value of ADAM7 they can be saved out
  5940.           with 7 levels of in terlacing. This gives progressive redraw
  5941.           for World Wide Web browsers.
  5942.  
  5943.           Note: This interlace has nothing to do with the Amiga's
  5944.           interlaced screens.
  5945.  
  5946.     TRANSPARENCY/S
  5947.           By specifying this switch, one colour out of the image's
  5948.           pallete can be made `transparent', causing the background
  5949.           colour to show through. This again can be useful with World
  5950.           Wide Web browsers. By default, the transparent colour is
  5951.           colour 0, but this can be changed (see below).
  5952.  
  5953.     TRANSPCOLOUR/N
  5954.           This is the palette entry number that is made transparent if
  5955.           the TRANSPARENT switch is used.
  5956.  
  5957. Example
  5958.      The following saves out a standard PNG format file:
  5959.  
  5960.           SAVE FILE "Image.png" FORMAT "PNG"
  5961.  
  5962.      The following saves out a PNG file with interlace:
  5963.  
  5964.           SAVE FILE "Image.png" FORMAT "PNG" ARGS "INTERLACE=ADAM7"
  5965.  
  5966.      The following saves out a PNG file with a transparent colour of 10:
  5967.  
  5968.           SAVE FILE "Image.png" FORMAT "PNG",
  5969.              ARGS "TRANSPARENCY TRANSPCOLOUR 10"
  5970.  
  5971. PNM
  5972. ---
  5973.  
  5974. Name
  5975.      PNM
  5976.  
  5977. Load types
  5978.      Black and white, greyscale, 24bit colour. ASCII and binary.
  5979.  
  5980. Save types
  5981.      Black and white, greyscale, 24bit colour. ASCII and binary.
  5982.  
  5983. Description
  5984.      PNM is an amalgamation of the PBM, PGM and PPM file formats,
  5985.      commonly found on UNIX machines.
  5986.  
  5987.      The PNM (Portable aNyMap) family of formats are simple way to store
  5988.      images as either binary or ASCII format. The formats are
  5989.      uncompressed, so tend to produce very large files. This module
  5990.      should handle all PNM formats.
  5991.  
  5992.      When loading a PNM file, the file *must* have either a `.pnm',
  5993.      `.pbm', `.pgm' or `.ppm' filename extension.
  5994.  
  5995.      When saving out a black and white PBM file, the current image is
  5996.      converted simply into black and white without dithering. If you
  5997.      require a dithered black and white output you have to reduce the
  5998.      number of colours first within ImageStudio.
  5999.  
  6000. ARexx OPEN command ARGS
  6001.      None.
  6002.  
  6003. ARexx SAVE command ARGS
  6004.      SUBFORMAT,ASCII/S
  6005.  
  6006.     SUBFORMAT
  6007.           SUBFORMAT can be set to either PBM, PGM, PPM depending on
  6008.           whether the output should be black and white, greyscale or
  6009.           24bit colour.
  6010.  
  6011.     ASCII/S
  6012.           By default PNM files are saved in their more compact binary
  6013.           format.  By specifying this switch, the output can be pure
  6014.           ASCII text characters. This format produces files whice are
  6015.           substantially larger than the binary format, but which can be
  6016.           directly transferred via text only media (e.g. e-mail).
  6017.  
  6018. Example
  6019.      The following saves out a 24bit PNM format file:
  6020.  
  6021.           SAVE FILE "Image.ppm" FORMAT "PNM" ARGS "SUBFORMAT=PPM"
  6022.  
  6023.      The following saves a black and white ASCII PBM file:
  6024.  
  6025.           SAVE FILE "Image.pbm" FORMAT "PNM" ARGS "SUBFORMAT=PBM ASCII"
  6026.  
  6027. QRT
  6028. ---
  6029.  
  6030. Name
  6031.      QRT
  6032.  
  6033. Load types
  6034.      24bit colour.
  6035.  
  6036. Save types
  6037.      24bit colour.
  6038.  
  6039. Description
  6040.      QRT is the output file format for the QuickRayTracer program, as
  6041.      well as the DKB and POV raytracers.
  6042.  
  6043.      QRT is a simple uncompressed 24bit colour file format.
  6044.  
  6045.      When loading a QRT file, the file *must* have either a `.qrt',
  6046.      `.dkb' or `.pov' filename extension.
  6047.  
  6048. ARexx OPEN command ARGS
  6049.      None.
  6050.  
  6051. ARexx SAVE command ARGS
  6052.      None.
  6053.  
  6054. Example
  6055.      The following saves out a 24bit QTR format file:
  6056.  
  6057.           SAVE FILE "Image.qrt" FORMAT "QRT"
  6058.  
  6059. SGI
  6060. ---
  6061.  
  6062. Name
  6063.      SGI
  6064.  
  6065. Load types
  6066.      Greyscale and 24bit colour. Compressed and uncompressed.
  6067.  
  6068. Save types
  6069.      Greyscale and 24bit colour. Compressed and uncompressed.
  6070.  
  6071. Description
  6072.      SGI-RGB is the file format used by Silicon Graphics workstations.
  6073.  
  6074.      SGI-RGB files can be compressed using run length encoding. As the
  6075.      data is 24bits, this usually has little effect.
  6076.  
  6077. ARexx OPEN command ARGS
  6078.      None.
  6079.  
  6080. ARexx SAVE command ARGS
  6081.      GREYSCALE/S,COMPRESSED/S
  6082.  
  6083.     GREYSCALE/S
  6084.           By default the image is saved in full 24bit colour. By
  6085.           specifying this switch, the output image can be saved as 256
  6086.           greyscales.
  6087.  
  6088.     COMPRESSED/S
  6089.           By specifying this switch the output file may be compressed
  6090.           using run length encoding.
  6091.  
  6092. Example
  6093.      The following saves out a 24bit SGI format file:
  6094.  
  6095.           SAVE FILE "Image.sgi" FORMAT "SGI"
  6096.  
  6097.      The following saves a compressed greyscale image:
  6098.  
  6099.           SAVE FILE "Image.sgi" FORMAT "SGI" ARGS "GREYSCALE COMPRESSED"
  6100.  
  6101. Targa
  6102. -----
  6103.  
  6104. Name
  6105.      TARGA
  6106.  
  6107. Load types
  6108.      Colour mapped (2 and 256 colours), 15, 16, 24 and 32bits.
  6109.  
  6110.      Compressed and uncompressed.
  6111.  
  6112. Save types
  6113.      Colour mapped (256 colours), 24 bit.
  6114.  
  6115.      Uncompressed.
  6116.  
  6117. Description
  6118.      Targa is usually used for storing 24-bit images, although it can
  6119.      also handle colour-mapped images as well. The data is usually
  6120.      stored as simple uncompressed data, however it can also be
  6121.      run-length encoded to allow compression.
  6122.  
  6123. ARexx OPEN command ARGS
  6124.      None.
  6125.  
  6126. ARexx SAVE command ARGS
  6127.      None.
  6128.  
  6129. Example
  6130.      None.
  6131.  
  6132. TIFF
  6133. ----
  6134.  
  6135. Name
  6136.      TIFF
  6137.  
  6138. Load types
  6139.      Baseline TIFF v6 without CCITT Huffman compression.
  6140.  
  6141. Save types
  6142.      Baseline TIFF v6.
  6143.  
  6144. Description
  6145.      TIFF is a very powerful and flexible file format.
  6146.  
  6147.      TIFF is probably the most complex and powerful image file format in
  6148.      common use. TIFF allows the TIFF saver many options in order to
  6149.      optimize the output file for any given use. This is also the
  6150.      problem with TIFF; in order for a program to load TIFF images it
  6151.      must have the ablility to understand all the aspects of the file
  6152.      format. This leads to great incompatibilties as programs create
  6153.      TIFF files which cannot be read in by other programs claiming TIFF
  6154.      loading ability.
  6155.  
  6156.      In order to overcome this problem, the TIFF Advisory Committee pro
  6157.      duced a `Baseline' TIFF specification which it was intended that
  6158.      all TIFF loaders/savers could handle this minimum level of file
  6159.      format.
  6160.  
  6161.      The TIFF module provided with ImageStudio is based on this baseline
  6162.      specification with some differences. The main difference is lack of
  6163.      compression type 2 (CCITT Huffman) in either the loader or saver.
  6164.      The loader should handle most other TIFF files and has been tested
  6165.      with Macintosh and UNIX image processing programs. Images produced
  6166.      by the module differ from the recommended strip size as dictated by
  6167.      the TIFF specifications. The TIFF specs recommend that the image is
  6168.      broken down into strips and saved out as multiple strips;
  6169.      ImageStudio saves the image out as one large strip to try and
  6170.      maintain compatibility with programs that cannot handle multiple
  6171.      strip images.
  6172.  
  6173.      Due to TIFF's complexity, it is very likely that ImageStudio will
  6174.      encounter invalid TIFF files that will not load into the program.
  6175.      Similarly, TIFF files produced by ImageStudio may not load into
  6176.      other programs (e.g. ones which rely on the strip size being
  6177.      small).  This is a fact of TIFF life, we're afraid. The
  6178.      ImageStudio TIFF module was written to compatible, not clever.
  6179.  
  6180. ARexx OPEN command ARGS
  6181.      None.
  6182.  
  6183. ARexx SAVE command ARGS
  6184.      COMPRESSION,DPI/N
  6185.  
  6186.     COMPRESSION
  6187.           Currently no compression is supported, so COMPRESSION=NONE.
  6188.  
  6189.     DPI/N
  6190.           The user may specify the resolution of the output image in
  6191.           dots-per-inch. Images are saved at a default DPI of 300.
  6192.  
  6193. Example
  6194.      The following saves out a TIFF format file:
  6195.  
  6196.           SAVE FILE "Image.tiff" FORMAT "TIFF"
  6197.  
  6198.      The following saves a TIFF image at 72 DPI:
  6199.  
  6200.           SAVE FILE "Image.tiff" FORMAT "TIFF" ARGS "DPI=72"
  6201.  
  6202. VMEM
  6203. ----
  6204.  
  6205. Name
  6206.      VMEM
  6207.  
  6208. Load types
  6209.      Colour mapped and 24bit.
  6210.  
  6211. Save types
  6212.      Colour mapped and 24bit.
  6213.  
  6214. Description
  6215.      VMEM is the data from ImageStudio's virtual memory swap files, plus
  6216.      header information.
  6217.  
  6218.      VMEM files can be loaded and saved by ImageStudio, but their main
  6219.      use is with the `UnCrash' CLI utility given with ImageStudio for
  6220.      resurrecting the virtual memory swap files after a crash.
  6221.  
  6222.      The file format is given below, as this is probably the easiest way
  6223.      of creating and reading images for ImageStudio for use in other
  6224.      programs.
  6225.  
  6226. File Format
  6227.      The file format for the VMEM files is given below should you wish
  6228.      to use the format in your own programs. The file consists of the
  6229.      of an information header (descriped below) followed by the image
  6230.      data. The image header is always a fixed size and the image data
  6231.      is uncom pressed.
  6232.  
  6233.      Image header:
  6234.  
  6235.      `C' notation is used, all numbers are stored in Motorola byte
  6236.      order,
  6237.  
  6238.           struct {
  6239.                UBYTE magic1,magic2;       // Values 0xDE and 0xAD
  6240.                UBYTE magic[4];            // Values 'V','M','E','M'
  6241.           
  6242.                WORD width,height;         // Image dimensions
  6243.           
  6244.                BYTE bytes_per_pixel;      // 1 for colour map, 3 for RGB
  6245.           
  6246.                UBYTE cmap[256][3];        // The colour map (empty for RGB)
  6247.                };
  6248.  
  6249.      The structure is not byte padded, i.e. it's 779 bytes in size.
  6250.  
  6251.      Image data:
  6252.  
  6253.      The image data is either the colour map values if the image was col
  6254.      our mapped, or RGB data ordered R,G,B. The length of the image data
  6255.      should be the width times height times bytes_per_pixel.
  6256.  
  6257. ARexx OPEN command ARGS
  6258.      None.
  6259.  
  6260. ARexx SAVE command ARGS
  6261.      None.
  6262.  
  6263. Example
  6264.      None.
  6265.  
  6266. Effects
  6267. =======
  6268.  
  6269.    Select the effect you wish to investigate.
  6270.  
  6271. Dynamic range
  6272. -------------
  6273.  
  6274. Works with
  6275.         - Full colour-mapped images.
  6276.  
  6277.         - Full and regions of 24bit images.
  6278.  
  6279. Description
  6280.      Expands the dynamic range of the image to the maximum possible,
  6281.      without altering the colour balance. This is useful for
  6282.      automatically increasing the contrast of poor contrast images,
  6283.      e.g. the output from a scanner.
  6284.  
  6285. ARexx EFFECT command ARGS
  6286.      None.
  6287.  
  6288. Flip X
  6289. ------
  6290.  
  6291. Works with
  6292.         - Full and regions of colour-mapped images.
  6293.  
  6294.         - Full and regions of 24bit images.
  6295.  
  6296. Description
  6297.      Flips the whole image or selected region horizontally.
  6298.  
  6299. ARexx EFFECT command ARGS
  6300.      None.
  6301.  
  6302. Flip Y
  6303. ------
  6304.  
  6305. Works with
  6306.         - Full and regions of colour-mapped images.
  6307.  
  6308.         - Full and regions of 24bit images.
  6309.  
  6310. Description
  6311.      Flips the whole image or selected region vertically.
  6312.  
  6313. ARexx EFFECT command ARGS
  6314.      None.
  6315.  
  6316. Greyscale
  6317. ---------
  6318.  
  6319. Works with
  6320.         - Full colour-mapped images.
  6321.  
  6322.         - Full and regions of 24bit images.
  6323.  
  6324. Description
  6325.      Reduces a colour image to a greyscale image. The actual greyscale
  6326.      values (or more correctly, luminosity) value is calculated as 30%
  6327.      of the red component + 59% of the green component + 11% of the blue
  6328.      component.
  6329.  
  6330. ARexx EFFECT command ARGS
  6331.      None.
  6332.  
  6333. Highlight
  6334. ---------
  6335.  
  6336. Works with
  6337.         - Full colour-mapped images.
  6338.  
  6339.         - Full and regions of 24bit images.
  6340.  
  6341. Description
  6342.      Turns all colours with greater than the given luminance value to
  6343.      white.
  6344.  
  6345. ARexx EFFECT command ARGS
  6346.      LUMINANCE/N/A
  6347.  
  6348.     LUMINANCE/N/A
  6349.           The luminance value above which pixels should be turned white.
  6350.  
  6351. Negative
  6352. --------
  6353.  
  6354. Works with
  6355.         - Full colour-mapped images.
  6356.  
  6357.         - Full and regions of 24bit images.
  6358.  
  6359. Description
  6360.      Negates the colour values of the image.
  6361.  
  6362. ARexx EFFECT command ARGS
  6363.      None.
  6364.  
  6365. Random
  6366. ------
  6367.  
  6368. Works with
  6369.         - Full and regions of 24bit images.
  6370.  
  6371. Description
  6372.      Adds random noise to the image. The greater the random value, the
  6373.      greater the noise.
  6374.  
  6375. ARexx EFFECT command ARGS
  6376.      RANDOMNESS/N/A
  6377.  
  6378.     RANDOMNESS/N/A
  6379.           The amount of randomness to apply to the image. Values range
  6380.           between 1 and 255.
  6381.  
  6382. Remove isolated pixels
  6383. ----------------------
  6384.  
  6385. Works with
  6386.         - Full and regions of colour-mapped images.
  6387.  
  6388.         - Full and regions of 24bit images.
  6389.  
  6390. Description
  6391.      Removes any single pixels that are a different colour to their
  6392.      neighbours. Useful in removing some of the noise in black and white
  6393.      scans.
  6394.  
  6395. ARexx EFFECT command ARGS
  6396.      None.
  6397.  
  6398. Roll X
  6399. ------
  6400.  
  6401. Works with
  6402.         - Full and regions of colour-mapped images.
  6403.  
  6404.         - Full and regions of 24bit images.
  6405.  
  6406. Description
  6407.      Rolls the whole image or selected region horizontally, wrapping the
  6408.      image around.
  6409.  
  6410. ARexx EFFECT command ARGS
  6411.      DISTANCE/N/A
  6412.  
  6413.     DISTANCE/N/A
  6414.           The distance, in pixels, to move the image. A positive value
  6415.           moves the image to the right, a negative value moves the
  6416.           image to the left.
  6417.  
  6418. Roll Y
  6419. ------
  6420.  
  6421. Works with
  6422.         - Full and regions of colour-mapped images.
  6423.  
  6424.         - Full and regions of 24bit images.
  6425.  
  6426. Description
  6427.      Rolls the whole image or selected region vertically, wrapping the
  6428.      image around.
  6429.  
  6430. ARexx EFFECT command ARGS
  6431.      DISTANCE/N/A
  6432.  
  6433.     DISTANCE/N/A
  6434.           The distance, in pixels, to move the image. A positive value
  6435.           moves the image down, a negative value moves the image up.
  6436.  
  6437. Pixelise
  6438. --------
  6439.  
  6440. Works with
  6441.         - Full and regions of colour-mapped images.
  6442.  
  6443.         - Full and regions of 24bit images.
  6444.  
  6445. Description
  6446.      Replaces all pixels in the whole image or selected region with
  6447.      larger pixels.
  6448.  
  6449. ARexx EFFECT command ARGS
  6450.      PIXELSIZE/N/A
  6451.  
  6452.     PIXELSIZE/N/A
  6453.           The size, in pixels, of the larger pixel blocks.
  6454.  
  6455. Shadow
  6456. ------
  6457.  
  6458. Works with
  6459.         - Full colour-mapped images.
  6460.  
  6461.         - Full and regions of 24bit images.
  6462.  
  6463. Description
  6464.      Turns all colours with less than the given luminance value to
  6465.      black.
  6466.  
  6467. ARexx EFFECT command ARGS
  6468.      LUMINANCE/N/A
  6469.  
  6470.     LUMINANCE/N/A
  6471.           The luminance value below which pixels should be turned black.
  6472.  
  6473. Image types
  6474. ===========
  6475.  
  6476.    ImageStudio works internally with either "colour-mapped" or "24-bit"
  6477. images. A description of the workings of both methods follows.
  6478.  
  6479. Colour-mapped images
  6480.      Colour-mapped (palette based) images are used by the standard
  6481.      (non-HAM) screenmodes on the Amiga. A set of colours (palette) is
  6482.      chosen for the image and every pixel in the image can have one of
  6483.      these colours.
  6484.  
  6485.      Colour-mapped images have the advantage of being a fairly compact
  6486.      way of storing image information and with a large palette (greater
  6487.      than 64 colours) high quality images can be produced. They have the
  6488.      disadvantage that the colours in the image are limited to the col
  6489.      ours in the palette - with a small palette it becomes a complex
  6490.      task choosing the correct colours to best portray the image.
  6491.  
  6492. 24-bit images
  6493.      24-bit images allow every pixel in the image to be an individual
  6494.      colour - this is essential for high quality images.
  6495.  
  6496.      24-bit images have the disadvantage that they are typically at
  6497.      least 3-times larger than colour-mapped images and require
  6498.      sophisticated display hardware to show them in their true glory.
  6499.  
  6500. When should I use each type of image?
  6501.      In general, try to leave the image in the format in which it came.
  6502.      If, for example, you load in a colour-mapped image try and perform
  6503.      all your operations directly to the colour-mapped image; only
  6504.      change to a 24-bit image if absolutely necessary (e.g. to apply a
  6505.      convolution filter).
  6506.  
  6507. Colour representations
  6508. ======================
  6509.  
  6510.        ImageStudio works internally with the R,G,B format of colour
  6511. representation. This is the most common method of storing colour in
  6512. formation on computers, as it represents the amounts of intensities
  6513. applied to the 3 colour guns of a computer monitor.
  6514.  
  6515.        H,S,V stands for Hue, Saturation and Value. The hue is the basic
  6516. colour (e.g. red, yellow, green, purple etc...), saturation is the
  6517. amount of that colour (e.g. weak red, strong red etc...) and the value
  6518. is the brightness of the colour.
  6519.  
  6520. Tooltypes
  6521. =========
  6522.  
  6523.    ImageStudio supports the configuring of the program via tooltypes
  6524. from either the Workbench or CLI.
  6525.  
  6526.    It is recommended that the user who starts the program from Work
  6527. bench uses the "Prefs" requester of ImageStudio to configure it (see
  6528. Prefs), whereas the CLI user should be aware of the tooltype options.
  6529.  
  6530.    Boolean tooltypes can have values `ON' or `YES' for a positive
  6531. value, `OFF' or `NO' for a negative values. Numeric tooltypes are
  6532. positive and negative integers; floating point values are not allowed.
  6533.  
  6534. BALANCE
  6535. -------
  6536.  
  6537. Name
  6538.      BALANCE
  6539.  
  6540. Type
  6541.      Boolean
  6542.  
  6543. Description
  6544.      Determines whether the balance floating palette should be open at
  6545.      startup.
  6546.  
  6547. BALANCELEFT
  6548. -----------
  6549.  
  6550. Name
  6551.      BALANCELEFT
  6552.  
  6553. Type
  6554.      Numeric
  6555.  
  6556. Description
  6557.      The top position to open the balance floating palette.
  6558.  
  6559. BALANCETOP
  6560. ----------
  6561.  
  6562. Name
  6563.      BALANCETOP
  6564.  
  6565. Type
  6566.      Numeric
  6567.  
  6568. Description
  6569.      The left position to open the balance floating palette.
  6570.  
  6571. CONVOLVE
  6572. --------
  6573.  
  6574. Name
  6575.      CONVOLVE
  6576.  
  6577. Type
  6578.      Boolean
  6579.  
  6580. Description
  6581.      Determines whether the convolve floating palette should be open at
  6582.      startup.
  6583.  
  6584. CONVOLVELEFT
  6585. ------------
  6586.  
  6587. Name
  6588.      CONVOLVELEFT
  6589.  
  6590. Type
  6591.      Numeric
  6592.  
  6593. Description
  6594.      The top position to open the convolve floating palette.
  6595.  
  6596. CONVOLVETOP
  6597. -----------
  6598.  
  6599. Name
  6600.      CONVOLVETOP
  6601.  
  6602. Type
  6603.      Numeric
  6604.  
  6605. Description
  6606.      The left position to open the convolve floating palette.
  6607.  
  6608. EFFECT
  6609. ------
  6610.  
  6611. Name
  6612.      EFFECT
  6613.  
  6614. Type
  6615.      Boolean
  6616.  
  6617. Description
  6618.      Determines whether the effect floating palette should be open at
  6619.      startup.
  6620.  
  6621. EFFECTLEFT
  6622. ----------
  6623.  
  6624. Name
  6625.      EFFECTLEFT
  6626.  
  6627. Type
  6628.      Numeric
  6629.  
  6630. Description
  6631.      The top position to open the effect floating palette.
  6632.  
  6633. EFFECTTOP
  6634. ---------
  6635.  
  6636. Name
  6637.      EFFECTTOP
  6638.  
  6639. Type
  6640.      Numeric
  6641.  
  6642. Description
  6643.      The left position to open the effect floating palette.
  6644.  
  6645. SCRIPTS
  6646. -------
  6647.  
  6648. Name
  6649.      SCRIPTS
  6650.  
  6651. Type
  6652.      Boolean
  6653.  
  6654. Description
  6655.      Determines whether the scripts floating palette should be open at
  6656.      startup.
  6657.  
  6658. SCRIPTSLEFT
  6659. -----------
  6660.  
  6661. Name
  6662.      SCRIPTSLEFT
  6663.  
  6664. Type
  6665.      Numeric
  6666.  
  6667. Description
  6668.      The top position to open the scripts floating palette.
  6669.  
  6670. SCRIPTSTOP
  6671. ----------
  6672.  
  6673. Name
  6674.      SCRIPTSTOP
  6675.  
  6676. Type
  6677.      Numeric
  6678.  
  6679. Description
  6680.      The left position to open the scripts floating palette.
  6681.  
  6682. PREVIEWLEFT
  6683. -----------
  6684.  
  6685. Name
  6686.      PREVIEWLEFT
  6687.  
  6688. Type
  6689.      Numeric
  6690.  
  6691. Description
  6692.      The top position to open the preview window.
  6693.  
  6694. PREVIEWTOP
  6695. ----------
  6696.  
  6697. Name
  6698.      PREVIEWTOP
  6699.  
  6700. Type
  6701.      Numeric
  6702.  
  6703. Description
  6704.      The left position to open the preview window.
  6705.  
  6706. PREVIEWWIDTH
  6707. ------------
  6708.  
  6709. Name
  6710.      PREVIEWWIDTH
  6711.  
  6712. Type
  6713.      Numeric
  6714.  
  6715. Description
  6716.      The width to open the preview window.
  6717.  
  6718. PREVIEWHEIGHT
  6719. -------------
  6720.  
  6721. Name
  6722.      PREVIEWHEIGHT
  6723.  
  6724. Type
  6725.      Numeric
  6726.  
  6727. Description
  6728.      The height to open the preview window.
  6729.  
  6730. FONTNAME
  6731. --------
  6732.  
  6733. Name
  6734.      FONTNAME
  6735.  
  6736. Type
  6737.      String
  6738.  
  6739. Description
  6740.      The name of the font to use to layout the ImageStudio windows and
  6741.      menus.
  6742.  
  6743.      When specifying the font name, the font name must be have a `.font'
  6744.      appended to its name. For example, to set the default to be
  6745.      helvetica, the tooltype should be specified as:
  6746.  
  6747.           FONTNAME=helvetica.font
  6748.  
  6749.      The fontname is not case sensitive.
  6750.  
  6751. FONTSIZE
  6752. --------
  6753.  
  6754. Name
  6755.      FONTSIZE
  6756.  
  6757. Type
  6758.      Numeric
  6759.  
  6760. Description
  6761.      The size of the font to use to layout the ImageStudio windows and
  6762.      menus.
  6763.  
  6764.      If a large font is specified which would cause some of the windows
  6765.      to become too large to fit on the ImageStudio screen, the font will
  6766.      default to topaz 8.
  6767.  
  6768. SCREENMODEID
  6769. ------------
  6770.  
  6771. Name
  6772.      SCREENMODEID
  6773.  
  6774. Type
  6775.      Numeric
  6776.  
  6777. Description
  6778.      The screenmode to open the ImageStudio screen. This value is the
  6779.      value returned by the REQUEST_SCREENMODE ARexx command in the
  6780.      MODEID value (see ARexx_REQUEST_SCREENMODE).
  6781.  
  6782. SCREENOVERSCAN
  6783. --------------
  6784.  
  6785. Name
  6786.      SCREENOVERSCAN
  6787.  
  6788. Type
  6789.      Numeric
  6790.  
  6791. Description
  6792.      The overscan to use with the ImageStudio screen. Valid values are 1
  6793.      for text overscan, 2 for graphics size, 3 for extreme and 4 for
  6794.      maximum.
  6795.  
  6796.      Note, this tooltype has changed from v1.x.x, where it was a string
  6797.      type.
  6798.  
  6799. SCREENDEPTH
  6800. -----------
  6801.  
  6802. Name
  6803.      SCREENDEPTH
  6804.  
  6805. Type
  6806.      Numeric
  6807.  
  6808. Description
  6809.      The depth of the ImageStudio screen. Valid values are 1 to 8.
  6810.  
  6811. SCREENWIDTH
  6812. -----------
  6813.  
  6814. Name
  6815.      SCREENWIDTH
  6816.  
  6817. Type
  6818.      Numeric
  6819.  
  6820. Description
  6821.      The width of the ImageStudio screen. Valid values are greater than
  6822.      640.
  6823.  
  6824. SCREENHEIGHT
  6825. ------------
  6826.  
  6827. Name
  6828.      SCREENHEIGHT
  6829.  
  6830. Type
  6831.      Numeric
  6832.  
  6833. Description
  6834.      The height of the ImageStudio screen. Valid values are greater than
  6835.      200.
  6836.  
  6837. BLANKSCRIPT
  6838. -----------
  6839.  
  6840. Name
  6841.      BLANKSCRIPT
  6842.  
  6843. Type
  6844.      String
  6845.  
  6846. Description
  6847.      The filename of the Blank ARexx script to use a template when a new
  6848.      script is created in the `Scripts' floating palette.
  6849.  
  6850. CONVOLVEDIR
  6851. -----------
  6852.  
  6853. Name
  6854.      CONVOLVEDIR
  6855.  
  6856. Type
  6857.      String
  6858.  
  6859. Description
  6860.      The directory to scan on startup for convolution filters to include
  6861.      in the `Convolves' floating palette.
  6862.  
  6863. EXTERNALVIEWER
  6864. --------------
  6865.  
  6866. Name
  6867.      EXTERNALVIEWER
  6868.  
  6869. Type
  6870.      String
  6871.  
  6872. Description
  6873.      The external program to run to view the image. The string is in the
  6874.      format that would be typed from the command line, with a `%s' where
  6875.      the image filename should be placed.
  6876.  
  6877.      It is recommended that the string be prefixed with a "run" to allow
  6878.      the external viewer to run in the background, otherwise ImageStudio
  6879.      has to wait for the program to finish. For example:
  6880.  
  6881.           sys:Utilities/VT <NIL: >NIL: %s
  6882.  
  6883.      would leave ImageStudio waiting until ViewTek had finished, whereas
  6884.  
  6885.           run sys:Utilities/VT <NIL: >NIL: %s
  6886.  
  6887.      would run ViewTek in the background. The "<NIL:" and ">NIL:" are
  6888.      used to stop error messages being printed to the console.
  6889.  
  6890. HELPFILE
  6891. --------
  6892.  
  6893. Name
  6894.      HELPFILE
  6895.  
  6896. Type
  6897.      String
  6898.  
  6899. Description
  6900.      The full filename of the AmigaGuide help file to provide online
  6901.      help.
  6902.  
  6903.      Note, the *full* filename must be provided, a filename taken from
  6904.      the current directory will not work. For example:
  6905.  
  6906.           Docs/ImageStudio.guide
  6907.  
  6908.      will not work, whereas
  6909.  
  6910.           Work:Graphics/ImageStudio/Docs/ImageStudio.guide
  6911.  
  6912.      will work fine.
  6913.  
  6914.      If you do wish to specify the current directory, you may use the
  6915.      `PROGDIR:' volume assignment. PROGDIR: is set to be the current di
  6916.      rectory of the current program, each program having its own
  6917.      PROGDIR: value that can only be used within the program.
  6918.      Therefore, the above AmigaGuide helpfile can be refered to as:
  6919.  
  6920.           PROGDIR:Docs/ImageStudio.guide
  6921.  
  6922.      See Tooltype_HELP, for more information on AmigaGuide help.
  6923.  
  6924. IMAGEDIR
  6925. --------
  6926.  
  6927. Name
  6928.      IMAGEDIR
  6929.  
  6930. Type
  6931.      String
  6932.  
  6933. Description
  6934.      The default directory to use for images when ImageStudio is loaded.
  6935.  
  6936. INTERNALVIEWER
  6937. --------------
  6938.  
  6939. Name
  6940.      INTERNALVIEWER
  6941.  
  6942. Type
  6943.      String
  6944.  
  6945. Description
  6946.      The filename of module used for the internal viewer. See See
  6947.      Internal_viewer, for more information on the different capablities
  6948.      of the different viewer modules.
  6949.  
  6950. KEYFILE
  6951. -------
  6952.  
  6953. Name
  6954.      KEYFILE
  6955.  
  6956. Type
  6957.      String
  6958.  
  6959. Description
  6960.      The filename of the keyfile to use to unlock ImageStudio to use
  6961.      full sized images. Keyfiles are obtaining by registering (see How
  6962.      to register).
  6963.  
  6964. MODULEDIR
  6965. ---------
  6966.  
  6967. Name
  6968.      MODULEDIR
  6969.  
  6970. Type
  6971.      String
  6972.  
  6973. Description
  6974.      The default directory to use for external modules.
  6975.  
  6976.      Inside the module directory are other directories containing
  6977.      modules specific to file loading/saving, viewers, effects etc...
  6978.      These directories are scanned when ImageStudio starts up.
  6979.  
  6980. PALETTEDIR
  6981. ----------
  6982.  
  6983. Name
  6984.      PALETTEDIR
  6985.  
  6986. Type
  6987.      String
  6988.  
  6989. Description
  6990.      The default directory to use for palettes when ImageStudio is
  6991.      loaded.
  6992.  
  6993.      See Palette, for more details on loading palettes into ImageStudio.
  6994.  
  6995. PORTNAME
  6996. --------
  6997.  
  6998. Name
  6999.      PORTNAME
  7000.  
  7001. Type
  7002.      String
  7003.  
  7004. Description
  7005.      The name of the ARexx portname used by the program.
  7006.  
  7007.      If a portname by that name already exists, the name is incremented
  7008.      until a free portname is found. For example, if `IMAGESTUDIO' was
  7009.      already in use, the following sequence of names would be tried:
  7010.      `IMAGESTUDIO.1', `IMAGESTUDIO.2', `IMAGESTUDIO.3' ...
  7011.  
  7012.      When choosing an ARexx portname, try to keep it fairly short.
  7013.  
  7014. REXXOUTPUT
  7015. ----------
  7016.  
  7017. Name
  7018.      REXXOUTPUT
  7019.  
  7020. Type
  7021.      String
  7022.  
  7023. Description
  7024.      The name of the filename to use for ARexx scripts' output.  See
  7025.      Basic ARexx, for more information on this file.
  7026.  
  7027. SCREENNAME
  7028. ----------
  7029.  
  7030. Name
  7031.      SCREENNAME
  7032.  
  7033. Type
  7034.      String
  7035.  
  7036. Description
  7037.      The name of ImageStudio's public screen. This name must be unique,
  7038.      otherwise the screen won't open.
  7039.  
  7040. SCRIPTSDIR
  7041. ----------
  7042.  
  7043. Name
  7044.      SCRIPTSDIR
  7045.  
  7046. Type
  7047.      String
  7048.  
  7049. Description
  7050.      The default directory that will be scanned for ARexx script files
  7051.      to put in the `Scripts' floating palette list. Any file with the
  7052.      chosen ARexx script extension (see Tooltype_SCRIPTSEXT) will be
  7053.      placed in the list.
  7054.  
  7055. SCRIPTSEXT
  7056. ----------
  7057.  
  7058. Name
  7059.      SCRIPTSEXT
  7060.  
  7061. Type
  7062.      String
  7063.  
  7064. Description
  7065.      The default filename extension for the ImageStudio ARexx scripts.
  7066.      Only scripts with this extension will be added to the list in the
  7067.      `Scripts' floating palette.
  7068.  
  7069. TEMPDIR
  7070. -------
  7071.  
  7072. Name
  7073.      TEMPDIR
  7074.  
  7075. Type
  7076.      String
  7077.  
  7078. Description
  7079.      The directory in which ImageStudio can put its virtual memory tempo
  7080.      rary swap files. This should be some location on your hard disk, as
  7081.      the data will be accessed a lot during some operations. If you have
  7082.      lots of RAM, the temporary directory can be placed in the ram disk
  7083.      for maximum speed.
  7084.  
  7085. TEXTEDITOR
  7086. ----------
  7087.  
  7088. Name
  7089.      TEXTEDITOR
  7090.  
  7091. Type
  7092.      String
  7093.  
  7094. Description
  7095.      The text editor used to edit ARexx scripts from the `Scripts' float
  7096.      ing palette. The string is in the format that would be typed from
  7097.      the command line, with a `%s' where the image filename should be
  7098.      placed.
  7099.  
  7100.      It is recommended that the string be prefixed with a "run" to allow
  7101.      the text editor to run in the background, otherwise ImageStudio has
  7102.      to wait for the program to finish. For example:
  7103.  
  7104.           sys:Tools/Memacs <NIL: >NIL: %s
  7105.  
  7106.      would leave ImageStudio waiting until Microemacs had finished,
  7107.      whereas
  7108.  
  7109.           run sys:Tools/Memacs <NIL: >NIL: %s
  7110.  
  7111.      would run Microemacs in the background. The "<NIL:" and ">NIL:" are
  7112.      used to stop error messages being printed to the console.
  7113.  
  7114. CLIPUNIT
  7115. --------
  7116.  
  7117. Name
  7118.      CLIPUNIT
  7119.  
  7120. Type
  7121.      Numeric
  7122.  
  7123. Description
  7124.      The system clipboard used to copy (see Copy) and paste (see Paste)
  7125.      by the program. There is very little need to change this from the
  7126.      default value of 0.
  7127.  
  7128. PAGESIZE
  7129. --------
  7130.  
  7131. Name
  7132.      PAGESIZE
  7133.  
  7134. Type
  7135.      Numeric
  7136.  
  7137. Description
  7138.      The size, in K, of the virtual memory pages. The larger this
  7139.      number, the more real RAM is used but the less frequent the
  7140.      accesses to the swap files (see Tooltype_TEMPDIR).
  7141.  
  7142.      At most, two of these pages will be allocated in RAM at any one
  7143.      time.
  7144.  
  7145. UNDOBUFFERS
  7146. -----------
  7147.  
  7148. Name
  7149.      UNDOBUFFERS
  7150.  
  7151. Type
  7152.      Numeric
  7153.  
  7154. Description
  7155.      The number of levels of undo / redo available. The larger this
  7156.      number, the more disk space is needed for the virtual memory swap
  7157.      files (this doesn't change the amount of RAM required).
  7158.  
  7159. APPICON
  7160. -------
  7161.  
  7162. Name
  7163.      APPICON
  7164.  
  7165. Type
  7166.      Boolean
  7167.  
  7168. Description
  7169.      Turns the AppIcon on the Workbench on or off. By having an AppIcon,
  7170.      users may double-click on the icon to bring the ImageStudio screen
  7171.      to the front or drop image files on it to load them.
  7172.  
  7173. COLOURPREVIEW
  7174. -------------
  7175.  
  7176. Name
  7177.      COLOURPREVIEW
  7178.  
  7179. Type
  7180.      Boolean
  7181.  
  7182. Description
  7183.      Switches between a greyscale and colour preview display. A colour
  7184.      preview can only be displayed when ImageStudio is run on screens
  7185.      with 16 colours or more. The colour preview will always use an
  7186.      ordered dither to enhance the display of the image, whereas the
  7187.      dithering can be turned off when using a greyscale preview (see
  7188.      Tooltype_COLOURPREVIEW).
  7189.  
  7190.      The value of the PREVIEWDITHER preference is ignored when using a
  7191.      colour preview - the colour preview is always dithered.
  7192.  
  7193. HELP
  7194. ----
  7195.  
  7196. Name
  7197.      HELP
  7198.  
  7199. Type
  7200.      Boolean
  7201.  
  7202. Description
  7203.      Turns AmigaGuide help on or off. Turning on AmigaGuide help uses
  7204.      more RAM as some pages are kept in memory.
  7205.  
  7206. MODULECACHE
  7207. -----------
  7208.  
  7209. Name
  7210.      MODULECACHE
  7211.  
  7212. Type
  7213.      Boolean
  7214.  
  7215. Description
  7216.      Allows modules to be kept resident in RAM to speed up access times.
  7217.  
  7218.      Turning this option off forces all modules to be flushed from
  7219.      memory after they are used; this results in the program requiring
  7220.      very little memory but involves reading the modules off disk
  7221.      everytime they are required.
  7222.  
  7223.      Module caching on will leave the modules resident in RAM, making
  7224.      for faster access. If the Amiga's operating system starts to get
  7225.      really low on RAM, the modules are still flushed.
  7226.  
  7227.      All modules are flushed from memory when the program quits.
  7228.  
  7229. PREVIEWDITHER
  7230. -------------
  7231.  
  7232. Name
  7233.      PREVIEWDITHER
  7234.  
  7235. Type
  7236.      Boolean
  7237.  
  7238. Description
  7239.      Turns ordered dithering on or off in the preview window. Turning
  7240.      preview dithering off uses slightly less memory and is slightly
  7241.      faster than the ordered dither.
  7242.  
  7243. PREVIEWREDRAW
  7244. -------------
  7245.  
  7246. Name
  7247.      PREVIEWREDRAW
  7248.  
  7249. Type
  7250.      Boolean
  7251.  
  7252. Description
  7253.      Turns the redrawing of the image on or off in the preview window.
  7254.      Normally this is kept on, but ARexx scripts may wish to turn this
  7255.      off (see ARexx_PREF_SET) to speed up some processing.
  7256.  
  7257. SPLASHWINDOW
  7258. ------------
  7259.  
  7260. Name
  7261.      SPLASHWINDOW
  7262.  
  7263. Type
  7264.      Boolean
  7265.  
  7266. Description
  7267.      Turns on or off the opening of the `About' window when the program
  7268.      starts up.
  7269.  
  7270. SCREENFRONT
  7271. -----------
  7272.  
  7273. Name
  7274.      SCREENFRONT
  7275.  
  7276. Type
  7277.      Boolean
  7278.  
  7279. Description
  7280.      ImageStudio starts up by keeping its screen behind all others. By
  7281.      turning this tooltype on, the screen is brought to the front after
  7282.      the startup initialisations have taken place.
  7283.  
  7284. Known bugs
  7285. ==========
  7286.  
  7287.    Known bugs:
  7288.  
  7289.    * Using the freely distributable PNG IO module with ImageStudio can
  7290.      cause side effects with the Scripts/Edit and View/External
  7291.      options. This is being investigated.
  7292.  
  7293.      If this causes you problems, remove the PNG IO module from the
  7294.      ImageStudio modules directory and use the freely distributable PNG
  7295.      datatype to load PNG files (no save) until we fix the problem.
  7296.  
  7297.    * Calling AmigaDos commands from an ARexx script running from the
  7298.      `Scripts' floating palette sometimes causes the machine to freeze
  7299.      if the command fails and tries to print some text. To fix this,
  7300.      pipe the input and output of all commands to `NIL:' (see Common
  7301.      ARexx problems).
  7302.  
  7303.    * At the moment it is possible to run more than one ARexx script from
  7304.      outside ImageStudio and this will lead to the ARexx commands from
  7305.      the multiple scripts being mixed together. We don't know if it's
  7306.      possible to only run one script at a time externally. If you run
  7307.      all your scripts from inside ImageStudio, this will never happen.
  7308.  
  7309.    * Under Workbench2.x the checkbox and mutual exclude (radio button)
  7310.      gadgets don't scale with font size. This may lead to slightly
  7311.      strange looking windows with very small or very large fonts.
  7312.      Workbench3.x scales these gadgets correctly.
  7313.  
  7314.    * ImageStudio has problems when running with the MagicFileRequester
  7315.      (MFR) utility. It seems that ImageStudio uses some features of the
  7316.      ASL file requesters that are unsupported by MFR and this causes MFR
  7317.      to crash. *This is not our problem, we are not doing anything
  7318.      wrong*. We've tried to contact the author about this, but to no
  7319.      avail. We suggest that when using ImageStudio, MFR is not used.
  7320.  
  7321.    If you think you have found a bug not covered here, please contact
  7322. the authors to report it (see The authors).
  7323.  
  7324. UnCrash
  7325. =======
  7326.  
  7327.    ImageStudio comes with a small CLI utility called `UnCrash' which
  7328. can be useful in trying to recover image data from the virtual memory
  7329. swap files left after a crash. It is worth mentioning that there should
  7330. be *no way* in which ImageStudio should crash the computer; UnCrash is
  7331. for use when ImageStudio is running and an other program causes a crash
  7332. or there is a power cut, etc...
  7333.  
  7334.    UnCrash should be run immediately after the crash; running
  7335. ImageStudio again before running UnCrash may cause the original virtual
  7336. memory swap files to be overwritten.
  7337.  
  7338.    UnCrash needs the following information to recover a swap file:
  7339.  
  7340.   1. The filename of the ImageStudio virtual memory swap file. This will
  7341.      be located in the directory given by the TEMPDIR preference, and be
  7342.      called something like `IMAGESTUDIO.1'. Normally these files are
  7343.      deleted when ImageStudio quits, but if the machine crashes there
  7344.      is no way these can be automatically deleted.
  7345.  
  7346.   2. The filename of the output image file to be created. The output
  7347.      file is in the `VMEM' file format (see VMEM) which only ImageStudio
  7348.      will load.
  7349.  
  7350.   3. The width and height of the original image. ImageStudio will only
  7351.      swap out the raw image data when dealing with virtual memory;
  7352.      details like the image's number of colours, palette and size are
  7353.      not saved in the swap file so they must be provided by the user.
  7354.  
  7355.    UnCrash will always try its best to recover the swap file and create
  7356. a useable VMEM image file. Should you specify incorrect dimensions for
  7357. the image or the swap file has become damaged in some way, UnCrash may
  7358. produce warnings and ImageStudio may warn about the quality of the VMEM
  7359. file created by UnCrash.
  7360.  
  7361.    The following example shows how UnCrash could be used to recover a
  7362. 640x480 virtual memory swap file after a crash:
  7363.  
  7364.      UnCrash Work:tmp/IMAGESTUDIO.3 ram:outimage.vmem 640 480
  7365.  
  7366. Common questions
  7367. ****************
  7368.  
  7369.    If you have any questions about ImageStudio, make sure that it
  7370. hasn't already been answered below:
  7371.  
  7372. Common question 1
  7373. =================
  7374.  
  7375.      "Why doesn't ImageStudio support TIFF fully?"
  7376.  
  7377.    The TIFF module supplied with ImageStudio closely follows the
  7378. version 6 Baseline TIFF specifications, so it should handle most of the
  7379. common TIFF files. We will probably be improving the TIFF module in the
  7380. future, but to fully support the TIFF standard would be an enormous
  7381. amount of programming.
  7382.  
  7383.    As a side note, we originally were going to use the TIFFlib from
  7384. Silicon Graphics' Sam Leffler. After compiling the code, we had a
  7385. library (minus module code) of around 250K. We decided that this was
  7386. just too much code to include as a module (of similar size to the
  7387. ImageStudio executable itself!), so we wrote our own TIFF code. Bear in
  7388. mind that even the TIFFlib doesn't handle all of the TIFF v6
  7389. specification, although it does handle most cases.
  7390.  
  7391. Common question 2
  7392. =================
  7393.  
  7394.      "Will you be adding SHAM, PCHG ..."
  7395.  
  7396.    At the moment we have no plans to add SHAM or CTBL formats due to
  7397. their hardware dependence. PCHG will probably be added later.
  7398.  
  7399. Common question 3
  7400. =================
  7401.  
  7402.      "Can I turn virtual memory off?"
  7403.  
  7404.    ImageStudio will always work with virtual memory. If you are lucky
  7405. enough to have lots of RAM and you wish to use that instead of your
  7406. hard disk, simply put the temp. files in the ram disk (see
  7407. Tooltype_TEMPDIR). The overhead of using virtual memory from RAM is
  7408. negligible.
  7409.  
  7410. Common question 4
  7411. =================
  7412.  
  7413.      "What other programs have the authors written?"
  7414.  
  7415.    Andy and Graham have written "TextureStudio", a shareware Imagine3
  7416. format texture renderer. See TextureStudio, for more information.
  7417.  
  7418.    Andy has written "StickIt" - an Amiga equivalent of the `PostIt'
  7419. note; useful for reminding you of things to do.
  7420.  
  7421.    Graham has written "MultiSample" and "MooseDrive". Multisample is a
  7422. utility for converting to and from common Amiga / PC / Atari ST sound
  7423. sample formats. MooseDrive is a frantic "viewed from the top" car
  7424. racing game with multiple large scrolling tracks and the ability to
  7425. upgrade your car as you win races.
  7426.  
  7427.    All the above programs are available from PD libraries as well as
  7428. the Internet's `Aminet' servers.
  7429.  
  7430. Common question 5
  7431. =================
  7432.  
  7433.      "How much disk space do the swap files use?"
  7434.  
  7435.    If the image is colour-mapped, 1 byte per pixel is used. Therefore,
  7436. the total number of bytes used is calculated as:
  7437.  
  7438.      bytes used = image_width x image_height
  7439.  
  7440.    If the image is 16 million colours, 3 bytes per pixel are used.
  7441. Therefore, the total number of bytes used is calculated as:
  7442.  
  7443.      bytes used = image_width x image_height x 3
  7444.  
  7445. Common question 6
  7446. =================
  7447.  
  7448.      "What is the .dvi and .ps documentation?"
  7449.  
  7450.    ".dvi" files are created with TeX program and can be viewed or
  7451. printed with appropriate utilities. This allows any user with the TeX
  7452. system installed to print the documentation out on any type of printer.
  7453.  
  7454.    ".ps" files are raw PostScript and can be printed on any PostScript
  7455. printer simply be sending them directly to the printer.
  7456.  
  7457. Common question 7
  7458. =================
  7459.  
  7460.      "Will you be adding support for animations?"
  7461.  
  7462.    Adding animation support is possible, but very very low on our list
  7463. of priorities. If you require image processing of animations with
  7464. ImageStudio, we recommend that you obtain a copy of Marcus Moenig's
  7465. `MainActor' program. With a bit of ARexx glue, MainActor could split
  7466. the animation, pass the frames to ImageStudio for processing and then
  7467. join them back into an animation afterwards.
  7468.  
  7469.    MainActor is a shareware program available from all good PD houses.
  7470.  
  7471. Common question 8
  7472. =================
  7473.  
  7474.      "Can you write a general virtual memory program?"
  7475.  
  7476.    We have been asked many times about writing a general purpose
  7477. virtual memory program that can be used with *all* Amigas (i.e.
  7478. doesn't require an MMU). To the best of our knowledge, this is not
  7479. possible. Our virtual memory routines don't require a MMU because they
  7480. are internal to ImageStudio and ImageStudio knows which parts of memory
  7481. it is currently using and which are safe to swap out to disk.
  7482.  
  7483.    A general purpose virtual memory program has to trap processor in
  7484. structions and decide whether that particular part of memory needs to
  7485. be loaded in. It also has to make smart decisions as to which part of
  7486. least used memory can be swapped out. In order to trap these processor
  7487. memory accesses, a MMU is vital.
  7488.  
  7489. Common question 9
  7490. =================
  7491.  
  7492.      "Why don't you use a MUI for your windows design"
  7493.  
  7494.    `MUI', or `Magic User Interface', is a tool written by Stefan Stuntz
  7495. for designing font sensitive GUIs for Amiga programs.
  7496.  
  7497.    We do not use MUI for the same reason that we don't use any other
  7498. third party GUI software that requires runtime libraries. There are 2
  7499. main problems in using third party utilities:
  7500.  
  7501.   1. The user of ImageStudio is then expected to install extra software
  7502.      on their system just to get ImageStudio to run. In the case of
  7503.      MUI's installation, this can be be several hundred kilobytes of
  7504.      extra files.
  7505.  
  7506.   2. If at a later date a new version of the Amiga's operating system
  7507.      causes these third party products to fail, ImageStudio will also
  7508.      fail. We have been very careful in writing ImageStudio to adhere to
  7509.      Commodore's programming guidelines and therefore we see no reason
  7510.      why ImageStudio should fail to work with further operating system
  7511.      versions. Relying on third party products does not give us that
  7512.      confidence.
  7513.  
  7514.      In the very worst case that the author of third party product was
  7515.      unable or unwilling to update his / her software for the new operat
  7516.      ing system, ImageStudio would need to be re-written - not something
  7517.      we have any wish to do.
  7518.  
  7519. Common question 10
  7520. ==================
  7521.  
  7522.      "Will you be releasing the module format"
  7523.  
  7524.    When the format of the modules is fixed we will release development
  7525. documentation describing how users may write thier own modules.
  7526. Currently the module format is liable to change, so it would be unwise
  7527. to release such information now.
  7528.  
  7529. The authors
  7530. ***********
  7531.  
  7532.    ImageStudio is written by Andy Dean and Graham Dean.
  7533.  
  7534.    Queries should be sent to:
  7535.  
  7536.      Andy and Graham Dean,
  7537.      14 Fielding Avenue,
  7538.      Poynton,
  7539.      Stockport,
  7540.      Cheshire.
  7541.      SK12 1YX
  7542.      ENGLAND
  7543.  
  7544.    Andy can be reached for queries (no orders) via Internet Email at:
  7545.  
  7546.      adean@eleceng.ucl.ac.uk
  7547.  
  7548.    Note: This Email address may change after September 1995; the postal
  7549. address given above will remain valid.
  7550.  
  7551.    Graham can be reached for queries (no orders) via Internet Email at:
  7552.  
  7553.      ELA95GND@sheffield.ac.uk
  7554.  
  7555.    The rate at which ImageStudio progresses depends on a few things:
  7556.  
  7557.   1. You. If you like and use the program, please register it. If you
  7558.      like the program but think it is missing something that isn't
  7559.      already in our future additions list (see Future additions) *let
  7560.      us know!*.
  7561.  
  7562.   2. Other work. Graham is studying for a degree and Andy is finishing a
  7563.      PhD and this work will take priority (sad, but true).
  7564.  
  7565.    If you find a bug in ImageStudio that is not convered in the `Known
  7566. bugs' list (see Known bugs), please inform the authors at the above
  7567. addresses; don't assume that someone else will, we don't notice all the
  7568. problems ourselves.
  7569.  
  7570.    Please include as much information about the problem as possible,
  7571. including:
  7572.  
  7573.    * Version of ImageStudio and whether it is the 68000 or 68020
  7574.      version.
  7575.  
  7576.    * Amiga model.
  7577.  
  7578.    * Version of Workbench/Kickstart.
  7579.  
  7580.    * Amount of RAM (fast and chip), hard disk size and type, processor.
  7581.  
  7582.    * Any extra hardware boards you have connected to your Amiga.
  7583.  
  7584.    * Any utilities you are running at the same time as ImageStudio.
  7585.  
  7586.    * Whether the problem is repeatable or just occasional.
  7587.  
  7588.    * If you have Enforcer or Mungwall, do these report anything?
  7589.  
  7590.    We treat all bug reports with the utmost importance but it is
  7591. difficult for us to investigate problems with very little detail on how
  7592. they happen, so please, send us as much information as possible.
  7593.  
  7594.    If you are having problems loading a particular file into
  7595. ImageStudio, test whether it will load into any another package and if
  7596. possible whether other files created by the same program also give
  7597. problems. We cannot really test every faulty file, but if files created
  7598. by one particular program only give problems on ImageStudio then we'll
  7599. look into that.
  7600.  
  7601.    ImageStudio has been tested on:
  7602.  
  7603.    - A500, Workbench 2.04, 1Mbyte CHIP RAM, 2Mbyte FAST RAM, A590
  7604.      85Mbyte SCSI hard drive, Microbotics VXL*30 accelerator (no 32-bit
  7605.      RAM).
  7606.  
  7607.    - A1200, Workbench 3.0, 2Mbyte CHIP RAM, 8MByte FAST RAM, Power
  7608.      ViperI 68030 accelerator card, 68882 FPU, 270Mbyte IDE hard drive.
  7609.  
  7610.    - A4000/EC030, Workbench 3.0, 2Mbyte CHIP RAM, 8MByte FAST RAM, 68882
  7611.      FPU, 130Mbyte + 420Mbyte IDE hard drives, CyberVision64 (2MB)
  7612.      graphics card.
  7613.  
  7614.    ImageStudio shows no problems with either the Enforcer or Mungwall
  7615. debugging tools.
  7616.  
  7617. How to register
  7618. ***************
  7619.  
  7620.    To receive the full version of ImageStudio, send 15 pounds sterling
  7621. (30 US dollars overseas) to:
  7622.  
  7623.      LH Publishing
  7624.      13 Gairlock Avenue
  7625.      Bletchley
  7626.      MK2 3DH
  7627.      ENGLAND
  7628.      
  7629.      larry@em.powernet.co.uk
  7630.  
  7631.    LH Publishing accept most types of payment, but if you have any
  7632. questions please don't hesitate to contact them first.
  7633.  
  7634.    Note: If you are sending cash, please make sure that it is well
  7635. wrapped in the envelope.
  7636.  
  7637.    In return you will receive the latest version of ImageStudio
  7638. complete with printed manual, along with a personal keyfile to unlock
  7639. the package. Each keyfile is unique to the registered user, please do
  7640. not distribute the keyfile to others as it can be traced back to you.
  7641. Allow a resonable time to allow cheque clearance, the processing of the
  7642. order, etc...
  7643.  
  7644.    Upgrades will be offered to registered users free of charge. As we
  7645. are now operating a keyfile concept, upgrades can be obtained by
  7646. getting the latest version from the Internet, Aminet, BBS's, PD houses
  7647. etc... If your local provider doesn't have the latest version, pester
  7648. them until they get it!
  7649.  
  7650.    Upgrades and orders will not now be given by contacting the authors
  7651. directly, unless there is a very good reason for it (we're sorry, but
  7652. we don't have the resources to deal with all the orders and upgrades
  7653. directly!).
  7654.  
  7655.    The version number of ImageStudio (see About) is to be interpreted
  7656. as:
  7657.  
  7658.      version.revision.subrevision
  7659.  
  7660.    The `version' shows the main version of the program, `revision' will
  7661. be increased as small additions and improvements are made to the
  7662. program. The `subrevision' value is incremented with bug fixes. All the
  7663. values are simple decimal, not floating point, so version 1.9.0 would
  7664. be followed by version 1.10.0.
  7665.  
  7666.    New versions will be distributed with every change in revision
  7667. number, bug fixes are likely to be distributed as "patches" (more
  7668. details to follow).
  7669.  
  7670. Credits
  7671. *******
  7672.  
  7673.    The authors would like to thank:
  7674.  
  7675.    * Escom / Amiga Technologies.
  7676.  
  7677.    * Commodore-Amiga.
  7678.  
  7679.    * Our beta testers.
  7680.  
  7681.    * Our parents, for their support (especially our mum for also helping
  7682.      with the posting and packing!!!).
  7683.  
  7684.    * Larry Hickmott, for his help and support and the time he's put into
  7685.      creating the printed manual.
  7686.  
  7687.    * Matt Dillon, for the `Dice' C compiler.
  7688.  
  7689.    * SAS Institute, for the `SAS/C' C compiler.
  7690.  
  7691.    * Ian OConner, for `The Designer' - used to do all the GUI windows de
  7692.      sign.
  7693.  
  7694.    * Michael Balzer, for `ARexxBox' - used to implement the ARexx port.
  7695.  
  7696.    * All those associated with the CyberGraphX retargetable graphics
  7697.      system.
  7698.  
  7699.    * Jonathan Forbes, for `LX' - used to decompress the .lha files in
  7700.      the distribution.
  7701.  
  7702.    * All the public domain / freeware / shareware authors, for loads of
  7703.      great software.
  7704.  
  7705.    * To those on the comp.sys.amiga.programmer newsgroup who've
  7706.      responded to our programming problems.
  7707.  
  7708.    * The Independant JPEG Group, for their essential JPEG code and in
  7709.      formation.
  7710.  
  7711.    * All those involved with the excellent TeX and `TeXinfo' packages.
  7712.  
  7713. Future additions
  7714. ****************
  7715.  
  7716.    The following features will probably be added to future versions of
  7717. the packages (roughly in order):
  7718.  
  7719.    * Making the effects external modules.
  7720.  
  7721.    * Spare buffer.
  7722.  
  7723.    * Alpha channel buffer.
  7724.  
  7725.    * Aspect ratio correction in the preview window.
  7726.  
  7727.    * ARexx macro record.
  7728.  
  7729.    * Halftoning operators.
  7730.  
  7731.    * Image rotation.
  7732.  
  7733.    * Write a separate program used to build ARexx batch processing
  7734.      scripts by simply clicking on the actions you wish to perform.
  7735.  
  7736.    * Toolbar.
  7737.  
  7738. TextureStudio
  7739. *************
  7740.  
  7741.    Brief description:
  7742.  
  7743.    TextureStudio supports the loading of texture modules in Imagine3
  7744. format. The parameters of the texture can quickly and easily be
  7745. adjusted by means of slider gadgets or by typing in the numbers. The
  7746. texture can then be mapped onto a plane, cylinder or sphere and
  7747. rendered to a preview screen and/or as a 24-bit image to disk.
  7748.  
  7749.    Many aspects of the texture and render can be altered including axis
  7750. position/alignment/size, lighting settings, object colours, object size
  7751. etc.
  7752.  
  7753.    TextureStudio allows the user to quickly render the texture and
  7754. explore the effects of changing various parameters without the need to
  7755. ray-trace a new image each time something altered.
  7756.  
  7757.    TextureStudio can render images to disk in IFF-ILBM24, JPEG or Targa
  7758. format. This allows high quality images to be rendered and loaded into
  7759. other programs. 24-bit images of any size can be rendered, regardless
  7760. of memory available.
  7761.  
  7762.    Some example textures are included in the distribution but Imagine3
  7763. is required to be able to use it's textures.
  7764.  
  7765.    List of feature:
  7766.  
  7767.    * Supports Imagine3 texture format.
  7768.  
  7769.    * Control of features via ARexx port.
  7770.  
  7771.    * Render unlimited number of textures simultaneously.
  7772.  
  7773.    * Render to HAM screen and 24-bit images on all Amigas.
  7774.  
  7775.    * Render 24-bit images of any size onto disk in IFF-ILBM24, JPEG or
  7776.      Targa format, regardless of memory available.
  7777.  
  7778.    * Saving of HAM preview screen to disk.
  7779.  
  7780.    * Support for colour, filter and bump type textures.
  7781.  
  7782.    * Easy adjustment of parameters by means of slider gadgets.
  7783.  
  7784.    * Map textures onto a plane, cylinder or sphere.
  7785.  
  7786.    * Control of light colour, distance, position, backlighting and
  7787.      intensity.
  7788.  
  7789.    * Adjustment of axis alignment, size and position.
  7790.  
  7791.    * Control of object size, visible width and image aspect ratio.
  7792.  
  7793.    * Multiple pass render to allow quick preview of image whilst it
  7794.      renders.
  7795.  
  7796.    * 5 levels of anti-aliasing available.
  7797.  
  7798.    * Preview colours with colourbox window.
  7799.  
  7800.    * Alter render screens width, height and screenmode.
  7801.  
  7802.    * Control of all main functions from floating windows.
  7803.  
  7804.    * Optimised code for 68881 and 68882 FPU's for maximum speed.
  7805.  
  7806.    * Render plane, cylinder or sphere without any texture to quickly set
  7807.      up lighting etc.
  7808.  
  7809.    * Loading and saving of textures settings, parameters and axis
  7810.      positions.
  7811.  
  7812.    * Render preferences to alters speed and accuracy of render.
  7813.  
  7814.    * Configure window positions, screenmode, default settings and then
  7815.      save preferences to disk.
  7816.  
  7817.    * Runs on all Amigas with Workbench2.04 or above and an FPU (floating
  7818.      point unit).
  7819.  
  7820.    * Standard Workbench2 interface.
  7821.  
  7822.    * Uses public screen.
  7823.  
  7824.    Shareware version:
  7825.  
  7826.    The shareware version is limited in that only the first 8 parameters
  7827. of the texture can be adjusted. No other features have been removed.
  7828.  
  7829.    The full version allows all 16 parameters to be altered.
  7830.  
  7831.    See How to register, for details on how to register. Registration is
  7832. 15UK pounds or 30US dollars.
  7833.  
  7834.